On Tue, Oct 9, 2012 at 09:50:22PM -0600, Chris Ernst wrote: > Hi all, > > I'm trying to test using pg_upgrade to go from 9.1.6 to 9.2.1 on Ubuntu > server 10.04. But when I run pg_upgrade, it tells me I can only run it > on 8.3 or later. > > Old: > postgres=# SELECT version(); > version > > ---------------------------------------------------------------------------------------------------------------- > PostgreSQL 9.1.6 on x86_64-unknown-linux-gnu, compiled by gcc-4.4.real > (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3, 64-bit > (1 row) > > > New: > postgres=# SELECT version(); > version > > ---------------------------------------------------------------------------------------------------------------- > PostgreSQL 9.2.1 on x86_64-unknown-linux-gnu, compiled by gcc-4.4.real > (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3, 64-bit > (1 row) > > > Yet when I try to run pg_upgrade: > > $ /usr/lib/postgresql/9.2/bin/pg_upgrade -b /usr/lib/postgresql/9.1/bin/ > -d /postgresql/9.1/main -B /usr/lib/postgresql/9.2/bin/ -D > /postgresql/9.2/main -k -c -v > Running in verbose mode > Performing Consistency Checks > ----------------------------- > Checking current, bin, and data directories ok > Checking cluster versions > This utility can only upgrade from PostgreSQL version 8.3 and later. > Failure, exiting > > Any idea what could be going on here? > > Thank you in advance for your help. That is cetainly odd. It is using this C code: if (GET_MAJOR_VERSION(old_cluster.major_version) < 803) pg_log(PG_FATAL, "This utility can only upgrade from PostgreSQL version 8.3 and later.\n"); which is assigned from this function: get_major_server_version(ClusterInfo *cluster) { FILE *version_fd; char ver_filename[MAXPGPATH]; int integer_version = 0; int fractional_version = 0; snprintf(ver_filename, sizeof(ver_filename), "%s/PG_VERSION", cluster->pgdata); if ((version_fd = fopen(ver_filename, "r")) == NULL) return 0; if (fscanf(version_fd, "%63s", cluster->major_version_str) == 0 || sscanf(cluster->major_version_str, "%d.%d", &integer_version, &fractional_version) != 2) pg_log(PG_FATAL, "could not get version from %s\n", cluster->pgdata); fclose(version_fd); return (100 * integer_version + fractional_version) * 100; } Can you show me what is in the PG_VERSION file in the old cluster? It should be "9.1". -- Bruce Momjian <bruce@xxxxxxxxxx> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. + -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general