POSTGRESQL 9.1备份并恢复到8.4

我正在尝试将我在本地开发的数据库上传到我们的开发服务器中.

我在我的机器上安装了Postgresql 9.1,开发服务器使用8.4.

尝试使用9.1创建的转储文件数据库恢复到8.4时,我收到错误

pg_restore: [archiver (db)] Could not execute query: ERROR:  Syntax error at or near "EXTENSION"
LINE 1: CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalo...

并且快速研究告诉我在9.1之前不存在“扩展”.

我不太确定我应该在pg_dump中寻找一个忽略“扩展”的选项,因为我试图上传数据库依赖于大多数数据的PostGIS扩展.

虽然升级开发服务器并在开发服务器中安装PostGIS是一个选项,但我想知道一个不同的路由,其中​​我不需要在服务器上编辑任何内容,同时保持我开发的数据库功能.

当然其他的变通方法受到欢迎,我将数据库上传到服务器的唯一目的是减少每当我需要为我们的团队部署一些东西时我必须对项目进行的重新配置.

解决方法

向后移植数据库可能既痛苦又困难.

您可以尝试使用8.4的pg_dump来转储它,但它可能会失败.

您可能希望从–schema-only转储文本文件提取表和函数定义,手动将它们加载到旧DB中,然后执行pg_dump –data-only并将其还原以导入数据.

之后,如果您要继续使用您的计算机,请安装Postgresql 8.4并将其用于进一步开发,这样您就不会引入更多不兼容性,因此很容易移动转储.

在你的位置,我只是将过时的目标服务器升级到9.1.

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...