Este erro ocorre se você tiver uma versão diferente do cliente Postgresql (a versão do servidor Odoo) e do servidor (a versão do seu servidor de banco de dados). Se você estiver usando a imagem ou imagem "oficial" do Docker do Odoo com base nisso, por exemplo, veivaa/odoo, é baseado na versão debian:stretch e tem o Postgresql versão 9.6 como cliente padrão. Com esta configuração, você terá uma incompatibilidade:cliente v9.6 conectando-se ao servidor v10. Isso resultará no erro que você está recebendo.
Para resolver isso, você precisa instalar a mesma versão no cliente e no servidor. Você pode fazer o downgrade do seu servidor Postgres para 9.6 ou atualizar o cliente Postgres em seu contêiner Odoo Docker para 10. Você pode testar isso fazendo a atualização do cliente manualmente.
docker exec -ti -u 0 yourodoocontainername bash
para o container Odoo e executando estes comandos dentro do container 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
Você precisa ter permissões de root no contêiner para executá-los. Após esta instalação, você pode sair do exec e reiniciar seu contêiner com
docker restart yourodoocontainername
. Certifique-se de ter armazenamento persistente usado para dados Odoo para que você não perca seu armazenamento de arquivos. Após essas etapas, você poderá fazer backups e restaurações com a interface web do Odoo. Você pode verificar a versão do cliente Postgresql com
psql --version
comando. O resultado esperado com a versão 9.6 é psql (PostgreSQL) 9.6.10
e com a versão 10 psql (PostgreSQL) 10.6 (Debian 10.6-1.pgdg90+1)
. O método exec é bom para teste, mas não para uso permanente, pois envolve etapas manuais. Você deve construir suas imagens do Docker com a versão correta modificando seu Dockerfile.