加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在没有Postgis功能的情况下转储或恢复Postgresql数据库

发布时间:2020-12-13 16:03:30 所属栏目:百科 来源:网络整理
导读:我想从 postgresql 8.4转储4个数据库以迁移到 Postgresql 9.1. 我在PgRouting的旧Postgresql 8.4上使用PostGis,因此每个数据库有大约1000个函数.每次导出所有数据库时,所有函数都写在转储中.当我恢复备份文件时,我在Postgresql 9.1上创建postgis或pgrouting
我想从 postgresql 8.4转储4个数据库以迁移到 Postgresql 9.1.

我在PgRouting的旧Postgresql 8.4上使用PostGis,因此每个数据库有大约1000个函数.每次导出所有数据库时,所有函数都写在转储中.当我恢复备份文件时,我在Postgresql 9.1上创建postgis或pgrouting的扩展时会遇到一些冲突

无论如何都要在8.4上转储数据库(创建数据库,创建模式,创建表和数据)而不导出功能?或者无论如何都要在9.1上恢复数据库而不在备份文件上创建功能?

解决方法

使用PostGIS的数据库需要遵循特定的更新过程.您需要遵循“硬升级”程序 documented here.

在您的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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读