при переносе базы данных с версии 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