gpt4 book ai didi

postgresql - 移动 PostgreSQL 数据库时出错

转载 作者:行者123 更新时间:2023-11-29 11:51:53 25 4
gpt4 key购买 nike

我正在尝试将数据库转储并导入到不同主机上的不同用户,均使用 PostgreSQL 9.4。

我一直在关注此处多个答案中的建议,但我仍然对某一部分感到困惑。

我使用以下命令转储原始数据库:

pg_dump -d test --clean --no-owner -f test.sql

在目标机器上,在明确启动 (initdb) 后,我执行以下操作:

1. 创建用户测试

2。 createdb -O test 测试

3。 psql -l 现在显示 test - test 作为名称和所有者

4.现在,如果我尝试使用以下方式导入:psql -U test -d test -f test.sql 我最终会遇到大量错误,例如:

ERROR:  relation "public.x" does not exist
ERROR: index "y" does not exist
ERROR: sequence "z" does not exist
ERROR: table "u" does not exist
ERROR: must be owner of extension plpgsql
ERROR: must be owner of schema public
ERROR: schema "public" already exists

然而,即使有所有这些错误,导入似乎已完成,并且在目标机器上进行转储最终得到与源相同的 sql 文件(除了最后的两个 super 用户行)。

我应该关注这些错误吗?为什么会发生这种情况,我应该采取哪些不同的措施来避免这些错误?这是在服务器/用户之间移动数据库的推荐方式吗?

最佳答案

这是正常行为,因为您使用 --clean 选项进行了备份。在这种情况下,sql 脚本试图在创建数据库对象之前删除它们,但找不到任何对象。

您可以忽略它们或创建不带 --clean 选项或附加 --if-exists 选项的转储(不确定它是否会删除所有错误)。

关于postgresql - 移动 PostgreSQL 数据库时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29980411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com