Odoo 8无法备份数据库(postgres)

4
每当我试图备份数据库时,都会出现以下错误:

Postgres子进程('/usr/bin/pg_dump','--no-owner', '--username=odoo','--file=/tmp/tmp3AYPgp/dump.sql', u'OdooSetup') 错误1

可以有人帮忙吗?

请问您是如何尝试备份数据库的? - Marco Altieri
你尝试过在odoo-8中使用管理员账户(超级用户)吗? - Shubham Batra
@MarcoAltieri 通过 Odoo /web/databases/manager 进入,然后备份(zip 文件)。 - Jesse
3个回答

1
我刚刚经历了这种情况,在我的情况下,问题是数据库中有一些序列的所有者不是预期的所有者(应该与数据库所有者相同)。
我的意思是,我的数据库由PostgreSQL用户odoo拥有。但在这个数据库中,有一些序列的所有者是odoo_8(另一个我拥有的PostgreSQL用户)。我不知道为什么会发生这种情况,但您可以按照以下步骤修复它:
通过psql连接到您的数据库:
\c your_database

展示数据库中每个表和序列的所有者:
\d

检查是否有所有者不正确的内容,如果有,则更改它们:

ALTER SEQUENCE sequence_name OWNER TO right_user;
ALTER TABLE table_name OWNER TO right_user;

这个命令也应该能够正常工作并且速度更快:

REASSIGN OWNED BY right_user TO right_user;

它应该将所有数据库的所有者修改为right_user,以及与您连接到的数据库相关的所有表和序列。
简而言之,如果引发错误的数据库名为my_database,其PostgreSQL所有者为odoo,请使用odoo用户(或超级用户)连接到psql并执行以下操作:
\c my_database
REASSIGN OWNED BY odoo TO odoo;

我希望这对某个人有所帮助。

1

从系统 shell 中启动命令,你会看到错误。例如:

pg_dump --no-owner --username=odoo OdooSetup >/dev/null


0

请给我更多关于这个错误的细节,我认为最后会显示类似于数据库中找不到用户odoo之类的信息。

首先,请检查数据库中是否存在用户odoo,如果您的系统用户名不是odoo,则需要使用相同名称在postgres中创建一个超级用户并尝试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接