postgis pg_restore: [archiver] input file does not appear to be a valid archive

при переносе базы данных с версии postgresql 9.1 c postgis 1.5 на postgresql 9.3 с postgis 2.1, получил ошибку:

PostgreSQL-9.3 — Can’t access $libdir/postgis-1.5

конечно так как у нас postgis 2.1, то папка будет $libdir/postgis-2.1, по этому и матерится.
нашел инструкцию для правильного обновления переноса при использовании postgis:
http://postgis.net/docs/manual-1.5/ch02.html#hard_upgrade

получил другую ошибку:

postgis pg_restore: [archiver] input file does not appear to be a valid archive

Вот если посмотреть использование команды в Ubuntu 13.10 так:

/usr/share/postgresql/9.3/contrib/postgis-2.1/postgis_restore.pl --help

Здесь по хелпу скрипт сообщает нам трушную инструкцию, по которой перенеслись базы с postgis без ошибок пока:

#vВыполнить дамп на старом сервере:
pg_dump -Fc MYDB > MYDB.dmp
# Создать нужную БД на новом:
createdb NEWDB
# Установить PostGIS в новую БД:
psql -f postgis/postgis.sql NEWDB
# в моем случае /usr/share/postgresql/9.3/contrib/postgis-2.1/postgis.sql
# Установить PostGIS topology и raster, если нужны:
psql -f topology/topology.sql NEWDB
# в моем случае /usr/share/postgresql/9.3/contrib/postgis-2.1/topology.sql
psql -f raster/rtpostgis.sql NEWDB
# в моем случае /usr/share/postgresql/9.3/contrib/postgis-2.1/rtpostgis.sql
В итоге, надо запустить perl скрипт с дампом и передать psql:
/usr/share/postgresql/9.3/contrib/postgis-2.1/postgis_restore.pl MYDB.dmp | psql NEWDB

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>