> > Greetings. > > I am trying to upgrade a PostgreSQL/PostGIS database from 8.4.0 to 0.1.4 > using pg_upgrade. > > The "active check" run of pg_upgrade was successful but when I try the real > thing, I get: > > -bash-4.1$ /usr/local/pgsql/bin/pg_upgrade -b /usr/bin -B > /usr/local/pgsql/bin -d /data1/copy/data -D /data1/pgsql914/data -k -l > /tmp/pg_log > Performing Consistency Checks > ----------------------------- > Checking current, bin, and data directories ok > Checking cluster versions ok > Checking database user is a superuser ok > Checking for prepared transactions ok > Checking for reg* system oid user data types ok > Checking for contrib/isn with bigint-passing mismatch ok > Checking for large objects ok > Creating catalog dump ok > Checking for prepared transactions ok > Checking for presence of required libraries ok > > | If pg_upgrade fails after this point, you must > | re-initdb the new cluster before continuing. > | You will also need to remove the ".old" suffix > | from /data1/copy/data/global/pg_control.old. > > Performing Upgrade > ------------------ > Adding ".old" suffix to old global/pg_control ok > Analyzing all rows in the new cluster ok > Freezing all rows on the new cluster ok > Deleting new commit clogs ok > Copying old commit clogs to new server ok > Setting next transaction id for new cluster ok > Resetting WAL archives ok > Setting frozenxid counters in new cluster ok > Creating databases in the new cluster ok > Adding support functions to new cluster ok > Restoring database schema to new cluster > psql:/data1/pgsql840/pg_upgrade_dump_db.sql:52010: ERROR: could not find > function "LWGEOM_distance_ellipsoid_point" in file "/usr/lib/liblwgeom.so" > > There were problems executing "/usr/local/pgsql/bin/psql" --set > ON_ERROR_STOP=on --no-psqlrc --port 5432 --username "postgres" -f > "/data1/pgsql840/pg_upgrade_dump_db.sql" --dbname template1 >> > "/tmp/pg_log" Failure, exiting > > Lines 52004 to 52010 in pg_upgrade_dump_db.sql are: > > -- > -- Name: distance_spheroid(geometry, geometry, spheroid); Type: FUNCTION; > Schema: public; Owner: postgres > -- > > CREATE FUNCTION distance_spheroid(geometry, geometry, spheroid) RETURNS > double precision > LANGUAGE c IMMUTABLE STRICT > AS '/usr/lib/liblwgeom', 'LWGEOM_distance_ellipsoid_point'; > It turned out that there was a "forgotten" PostGIS database in the cluster being upgraded to 9.1.4. This database had not been upgraded using the PostGIS upgrade 1.3 to 1.5 SQL script when others were so still had old function definitions.
After a bit of hassle with the version checking code in the PostGIS script, I was able to run it and then successfully run pg_upgrade. HTH, Stephen -- ============================================================================= Stephen Davies Consulting P/L Phone: 08-8177 1595 Adelaide, South Australia. Mobile:040 304 0583 Records & Collections Management. _______________________________________________ postgis-users mailing list postgis-users@postgis.refractions.net http://postgis.refractions.net/mailman/listinfo/postgis-users