【发布时间】:2013-05-10 01:08:08
【问题描述】:
我正在尝试从一台服务器导出数据库并使用 phpPgAdmin 将其放在另一台服务器上。我的流程是这样的:
- 选择服务器 1 中的数据库并点击导出按钮
- 选择“数据和结构”并在下拉菜单“复制”中选择选项
- 下载
- 在服务器 2 中创建一个与服务器 1 中的数据库同名的同名数据库
- 选择该数据库,打开 SQL 窗格,然后粘贴我从服务器 1 下载的 SQL 代码
- 执行
那是我得到错误的时候:
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;
我读过here,这可能是因为我的两台服务器上的 postgre 版本略有不同。所以我咨询了服务器技术人员,他们说,是的,有这个问题。所以他升级了服务器 2。但是我遇到了同样的错误。
知道会发生什么吗?
非常感谢。
【问题讨论】:
-
目标数据库是旧版本吗?您提到的两个版本“略有不同”是什么?使用了哪些 pg_dump 和 pg_restore 版本?
-
@CraigRinger 感谢您的帮助。我不得不向服务器管理员提出这些问题,但我会尽快发布答案。
-
SELECT version()在两台服务器上,pg_dump --version在用于进行转储的机器上。见stackoverflow.com/tags/postgresql/info。猜测您或您的服务器管理员对“略有不同”的版本感到困惑,并假设(例如)9.2 和 9.1 是 100% SQL 级别兼容的。 -
@CraigRinger 服务器 1:x86_64-redhat-linux-gnu 上的 PostgreSQL 8.4.13,由 GCC gcc (GCC) 4.4.6 编译 20120305 (Red Hat 4.4.6-4),64 位--- 服务器 2:x86_64-redhat-linux-gnu 上的 PostgreSQL 8.1.23,由 GCC gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-52) 编译。啊!你是对的!
-
rofl。确实是“略有不同的版本”。 postgresql.org/support/versioning 。 8.1 分支于 2005 年发布,8.4 于 2009 年发布。恭喜你实际运行了最新的 8.1,不过,几乎没有坚持旧版本的人跟上补丁的发布。
标签: sql postgresql import phppgadmin