Det här felet uppstår om du har en annan version av Postgresql-klienten (versionen på Odoo-servern) och servern (versionen på din databasserver). Om du använder Odoo "officiella" Docker-bild eller bild baserad på det, t.ex. veivaa/odoo-avbildning, den är baserad på debian:stretch-versionen och den har Postgresql version 9.6 som standardklient. Med denna inställning kommer du att ha en oöverensstämmelse:klient v9.6 ansluter till server v10. Det kommer att resultera i felet du får.
För att lösa detta måste du installera samma version på klient och server. Du kan antingen nedgradera din Postgres-server till 9.6 eller uppgradera Postgres-klienten i din Odoo Docker-behållare till 10. Du kan testa detta genom att göra klientuppgraderingen manuellt. docker exec -ti -u 0 yourodoocontainername bash
till Odoo-behållaren och exekvera dessa kommandon inuti Odoo-behållaren:
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
Du måste ha root-behörigheter i behållaren för att köra dessa. Efter den här installationen kan du avsluta exec och starta om din behållare med docker restart yourodoocontainername
. Se till att du har beständig lagring som används för Odoo-data så att du inte förlorar din fillagring. Efter dessa steg kan du göra säkerhetskopior och återställningar med Odoo webbgränssnitt.
Du kan kontrollera din Postgresql-klientversion med psql --version
kommando. Det förväntade resultatet med version 9.6 är psql (PostgreSQL) 9.6.10
och med version 10 psql (PostgreSQL) 10.6 (Debian 10.6-1.pgdg90+1)
.
Exec-metoden är bra för testning men inte bra för permanent användning eftersom den involverar manuella steg. Du bör bygga dina Docker-bilder med rätt version genom att modifiera din Dockerfil.