0

我正在尝试从一台服务器导出数据库并使用 phpPgAdmin 将其放在另一台服务器上。我的过程是这样的:

  1. 选择服务器 1 中的数据库并点击导出按钮
  2. 选择“数据和结构”并在下拉“复制”中选择选项
  3. 下载
  4. 在服务器 2 中创建一个与服务器 1 中的数据库同名的数据库
  5. 选择该数据库,打开 SQL 窗格,然后粘贴我从服务器 1 下载的 SQL 代码
  6. 执行

那是我收到错误的时候:

ERROR:  syntax error at or near "OWNED"
LINE 73: ALTER SEQUENCE address_customer_id_seq OWNED BY address.cust...

第 73 行的全部内容是:

 ALTER SEQUENCE address_customer_id_seq OWNED BY address.customer_id;

我在这里读到这可能是因为我的两台服务器上的 postgre 版本略有不同。所以我咨询了服务器技术人员,他们说,是的,有这个问题。所以他升级了服务器 2。但是我遇到了同样的错误。

知道会发生什么吗?

非常感谢。

4

1 回答 1

3

PostgreSQL 8.4 不会生成恢复到 8.1 的转储,因为它将使用 8.1 中不存在的特性和语法。

可以通过针对 8.4 数据库运行 8.1 来降级pg_dump,但转储很可能会失败。

降级那么远将是一个挑战,并且可能涉及手动编辑 8.4 生成的转储pg_dump以使其与 8.1 兼容。

8.1 过时且不受支持;它的最终生命周期结束版本是在 2010 年 11 月。您甚至不应该考虑将它用于任何新项目或工具,并且确实需要计划升级。

有关这些版本的不同之处,请参阅PostgreSQL 版本政策。您可以通过阅读8.2.0、8.3.0 和 8.4.0 版本的发行说明了解更多信息。重要的是要了解每个版本中都存在应用程序可见的行为变化;您必须测试您的应用程序,并且可能需要启用一些向后兼容性设置。

您还应该阅读升级 PostgreSQL 集群文档——但请注意pg_upgrade 不能用于升级早于 8.4 的版本。

如果您的安装没有过时七年,这一切都不会那么痛苦。

于 2013-05-10T01:31:49.453 回答