sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Copia de seguridad de la base de datos odoo12 sin propietario?

Este error ocurre si tiene una versión diferente del cliente Postgresql (la versión en el servidor Odoo) y el servidor (la versión en su servidor de base de datos). Si está utilizando la imagen Docker "oficial" de Odoo o una imagen basada en eso, p. imagen de veivaa/odoo, está basada en la versión debian:stretch y tiene como cliente predeterminado la versión 9.6 de Postgresql. Con esta configuración, tendrá una discrepancia:el cliente v9.6 se conecta al servidor v10. Dará como resultado el error que está recibiendo.

Para resolver esto, debe instalar la misma versión en el cliente y el servidor. Puede degradar su servidor de Postgres a 9.6 o actualizar el cliente de Postgres en su contenedor Odoo Docker a 10. Puede probar esto haciendo la actualización del cliente manualmente. docker exec -ti -u 0 yourodoocontainername bash al contenedor de Odoo y ejecutando estos comandos dentro del contenedor de 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

Debe tener permisos de raíz en el contenedor para ejecutarlos. Después de esta instalación, puede salir de exec y reiniciar su contenedor con docker restart yourodoocontainername . Asegúrese de tener un almacenamiento persistente utilizado para los datos de Odoo para que no pierda su almacén de archivos. Después de estos pasos, podrá realizar copias de seguridad y restauraciones con la interfaz web de Odoo.

Puede verificar la versión de su cliente Postgresql con psql --version dominio. El resultado esperado con la versión 9.6 es psql (PostgreSQL) 9.6.10 y con la versión 10 psql (PostgreSQL) 10.6 (Debian 10.6-1.pgdg90+1) .

El método exec es bueno para pruebas pero no para uso permanente porque involucra pasos manuales. Debe crear sus imágenes de Docker con la versión correcta modificando su Dockerfile.