Hi, I've played with trying to find out which minimal set of files I need from the old version to make pg_upgrade work. Interestingly, this includes the good old postmaster binary:
$ sudo -u postgres pgsql/bin/pg_upgrade -b /var/tmp/pgsql/bin/ -B /usr/lib/postgresql/9.5/bin/ -d /etc/postgresql/9.5/main -D /tmp/9.5/data Finding the real data directory for the old cluster sh: 1: /var/tmp/pgsql/bin/postmaster: not found Could not get data directory using "/var/tmp/pgsql/bin/postmaster" -D "/etc/postgresql/9.5/main" -C data_directory: No such file or directory Failure, exiting I think it should just use "postgres" there, patch attached. (If we need to be compatible with postmaster-only PG versions from the last century, it should try both names.) Christoph -- c...@df7cb.de | http://www.df7cb.de/
diff --git a/contrib/pg_upgrade/option.c b/contrib/pg_upgrade/option.c new file mode 100644 index cfc88ec..bd810cd *** a/contrib/pg_upgrade/option.c --- b/contrib/pg_upgrade/option.c *************** adjust_data_dir(ClusterInfo *cluster) *** 415,421 **** * so this might fail --- only works for PG 9.2+. If this fails, * pg_upgrade will fail anyway because the data files will not be found. */ ! snprintf(cmd, sizeof(cmd), "\"%s/postmaster\" -D \"%s\" -C data_directory", cluster->bindir, cluster->pgconfig); if ((output = popen(cmd, "r")) == NULL || --- 415,421 ---- * so this might fail --- only works for PG 9.2+. If this fails, * pg_upgrade will fail anyway because the data files will not be found. */ ! snprintf(cmd, sizeof(cmd), "\"%s/postgres\" -D \"%s\" -C data_directory", cluster->bindir, cluster->pgconfig); if ((output = popen(cmd, "r")) == NULL ||
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers