Дамп или восстановление баз данных 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 ответ:
Базы данных с 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