Дамп или восстановление баз данных Postgresql без функций Postgis


Я хочу сбросить 4 базы данных из postgresql 8.4, чтобы перейти на Postgresql 9.1.

Я использую PostGis на старом Postgresql 8.4 с PgRouting, поэтому каждая база данных имеет около 1000 функций. Каждый раз, когда я экспортирую все базы данных, все функции записываются в дамп. Когда я восстанавливаю файл резервной копии, я получаю некоторые конфликты, когда я создаю расширение postgis или pgrouting на Postgresql 9.1

Есть ли вообще дамп баз данных на 8.4 (создание dbs, создание схем, создание таблиц и данных) без как экспортировать функции? Или все же есть возможность восстановить базы данных на 9.1 без создания функций в файле резервной копии?

1 4

1 ответ:

Базы данных с PostGIS должны следовать определенной процедуре обновления. Вам нужно будет выполнить процедуру "жесткого обновления" , описанную здесь.

В вашей базе данных 8.4:

pg_dump -h localhost -p 5432 -U postgres -Fc -b -v -f "/somepath/olddb.backup" olddb

И в базе данных 9.1, возможно, начните с этих (Если вы еще не сделали этого):

createdb [yourdatabase]
psql -d [yourdatabase] -c "CREATE EXTENSION postgis;"

Затем восстановите данные с помощью специального скрипта postgis_restore.pl:

perl utils/postgis_restore.pl "/somepath/olddb.backup" | psql -h localhost -p 5432 -U postgres newdb 2> errors.txt