Обсуждение: pg_upgrade: error when migrating from 8.3 to 9.1

Поиск
Список
Период
Сортировка

pg_upgrade: error when migrating from 8.3 to 9.1

От
sayeed
Дата:
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.

Re: pg_upgrade: error when migrating from 8.3 to 9.1

От
Tom Lane
Дата:
sayeed <sayeed.anjum@gmail.com> writes:
> 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:
> 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