Discussion:
[ADMIN] pg_upgrade: error when migrating from 8.3 to 9.1
(too old to reply)
sayeed
2012-01-15 11:54:46 UTC
Permalink
I am trying to upgrade a database from postgresql 8.3.8 to 9.1. (Ubuntu 10.10
Maverick)

It is crashing out with the following error:

Adding support functions to new cluster ok
Restoring database schema to new cluster
"/usr/lib/postgresql/9.1/bin/psql" --set ON_ERROR_STOP=on --no-psqlrc --port
5435 --username "postgres" -f "/var/lib/postgresql/pg_upgrade_dump_db.sql"
--dbname template1 >> "/dev/null"
psql:/var/lib/postgresql/pg_upgrade_dump_db.sql:85146: ERROR: could not
find function "pg_freespacemap_pages" in file
"/usr/lib/postgresql/9.1/lib/pg_freespacemap.so"

The code at line 85146 is as follows:

CREATE FUNCTION pg_freespacemap_pages() RETURNS SETOF record
LANGUAGE c
AS '$libdir/pg_freespacemap', 'pg_freespacemap_pages';

Why does this happen? Any hints how this can be fixed? As a work around, is
it safe to create this function in 9.1 and how do I do that?

Help! Thanks in advance...


--
View this message in context: http://postgresql.1045698.n5.nabble.com/pg-upgrade-error-when-migrating-from-8-3-to-9-1-tp5146289p5146289.html
Sent from the PostgreSQL - admin mailing list archive at Nabble.com.
--
Sent via pgsql-admin mailing list (pgsql-***@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin
Tom Lane
2012-01-15 17:28:21 UTC
Permalink
Post by sayeed
I am trying to upgrade a database from postgresql 8.3.8 to 9.1. (Ubuntu 10.10
Maverick)
psql:/var/lib/postgresql/pg_upgrade_dump_db.sql:85146: ERROR: could not
find function "pg_freespacemap_pages" in file
"/usr/lib/postgresql/9.1/lib/pg_freespacemap.so"
Why does this happen?
Because pg_freespacemap_pages() doesn't exist (and neither does the
freespace map) in versions after 8.3. Had pg_upgrade existed at the
time we removed the FSM, we might have taken a bit more care with what
would happen in an upgrade situation ... but it didn't.

You could do this via pg_dump and reload, in which case the missing
functions would result in ignorable errors during the reload.
If you want to do it via pg_upgrade, I think the most practical way
is to drop the whole pg_freespacemap extension (ie, run its uninstall
script) in your 8.3 installation, then do the upgrade, then install
9.1's version of the extension if you still want it.

regards, tom lane
--
Sent via pgsql-admin mailing list (pgsql-***@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin
Loading...