PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

backup del database odoo12 nessun proprietario?

Questo errore si verifica se si dispone di una versione diversa del client Postgresql (la versione sul server Odoo) e del server (la versione sul server del database). Se stai utilizzando l'immagine Docker "ufficiale" di Odoo o un'immagine basata su quella, ad es. veivaa/odoo, è basato su debian:stretch version e ha Postgresql versione 9.6 come client predefinito. Con questa configurazione avrai una mancata corrispondenza:client v9.6 che si connette al server v10. Risulterà nell'errore che stai ricevendo.

Per risolvere questo problema devi installare la stessa versione su client e server. Puoi eseguire il downgrade del tuo server Postgres a 9.6 o aggiornare il client Postgres nel tuo container Odoo Docker a 10. Puoi testarlo eseguendo manualmente l'aggiornamento del client. docker exec -ti -u 0 yourodoocontainername bash al contenitore Odoo ed eseguire questi comandi all'interno del contenitore 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

È necessario disporre dei permessi di root nel contenitore per eseguirli. Dopo questa installazione puoi uscire da exec e riavviare il tuo container con docker restart yourodoocontainername . Assicurati di avere uno spazio di archiviazione persistente utilizzato per i dati Odoo in modo da non perdere il tuo archivio file. Dopo questi passaggi sarai in grado di eseguire backup e ripristini con l'interfaccia web di Odoo.

Puoi controllare la versione del tuo client Postgresql con psql --version comando. Il risultato atteso con la versione 9.6 è psql (PostgreSQL) 9.6.10 e con la versione 10 psql (PostgreSQL) 10.6 (Debian 10.6-1.pgdg90+1) .

Il metodo exec è buono per il test ma non per l'uso permanente perché prevede passaggi manuali. Dovresti creare le tue immagini Docker con la versione corretta modificando il tuo Dockerfile.