odoo12数据库备份没有所有者?

时间:2018-12-31 17:04:13

标签: postgresql docker odoo

我无法备份odoo 12数据库,我使用Postgres 10和docker container.error:

Database backup error: Postgres subprocess ('/usr/bin/pg_dump', '--no-owner', '--file=/tmp/tmpgoyjsd3i/dump.sql', 'odoo') error 1

1 个答案:

答案 0 :(得分:1)

如果您使用不同版本的Postgresql客户端(Odoo服务器上的版本)和服务器(数据库服务器上的版本),则会发生此错误。如果您使用的是Odoo“官方” Docker映像或基于该映像的映像,例如veivaa / odoo映像,它基于debian:stretch版本,并且具有Postgresql版本9.6作为默认客户端。使用此设置,您将不匹配:客户端v9.6连接到服务器v10。它将导致您得到错误。

要解决此问题,您必须在客户端和服务器上安装相同版本。您可以将Postgres服务器降级到9.6,或者将Odoo Docker容器中的Postgres客户端升级到10。您可以通过手动升级客户端来测试。 docker exec -ti -u 0 yourodoocontainername bash到Odoo容器并在Odoo容器内执行以下命令:

apt-get update
echo 'deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main' >  /etc/apt/sources.list.d/pgdg.list
yes Y | apt-get install wget
yes Y | apt-get install gnupg
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
apt-get update
yes Y | apt-get install postgresql-client-10

您需要在容器中具有root权限才能运行这些权限。安装完成后,您可以退出exec并使用docker restart yourodoocontainername重新启动容器。确保您具有用于Odoo数据的永久存储,以免丢失文件存储。完成这些步骤后,您便可以使用Odoo Web界面进行备份和还原。

您可以使用psql --version命令检查您的Postgresql客户端版本。版本9.6的预期结果是psql (PostgreSQL) 9.6.10,版本10的预期结果是psql (PostgreSQL) 10.6 (Debian 10.6-1.pgdg90+1)

exec方法适用于测试,但不适用于永久使用,因为它涉及手动步骤。您应该通过修改Dockerfile来使用正确的版本构建Docker映像。