Denne fejl opstår, hvis du har en anden version af Postgresql-klienten (versionen på Odoo-serveren) og serveren (versionen på din databaseserver). Hvis du bruger Odoo "officielle" Docker-billede eller billede baseret på det, f.eks. veivaa/odoo billede, det er baseret på debian:stretch version og det har Postgresql version 9.6 som standard klient. Med denne opsætning vil du have en uoverensstemmelse:klient v9.6 forbinder til server v10. Det vil resultere i den fejl, du får.
For at løse dette skal du installere samme version på klient og server. Du kan enten nedgradere din Postgres-server til 9.6 eller opgradere Postgres-klienten i din Odoo Docker-container til 10. Du kan teste dette ved at udføre klientopgraderingen manuelt. docker exec -ti -u 0 yourodoocontainername bash
til Odoo-beholderen og udføre disse kommandoer inde i Odoo-beholderen:
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 skal have root-tilladelser i containeren for at køre disse. Efter denne installation kan du afslutte exec og genstarte din container med docker restart yourodoocontainername
. Sørg for, at du har vedvarende lagring, der bruges til Odoo-data, så du ikke mister dit fillager. Efter disse trin er du i stand til at lave sikkerhedskopier og gendannelser med Odoo-webgrænsefladen.
Du kan tjekke din Postgresql-klientversion med psql --version
kommando. Det forventede resultat med version 9.6 er psql (PostgreSQL) 9.6.10
og med version 10 psql (PostgreSQL) 10.6 (Debian 10.6-1.pgdg90+1)
.
Exec-metoden er god til test, men ikke god til permanent brug, fordi den involverer manuelle trin. Du bør bygge dine Docker-billeder med den rigtige version ved at ændre din Dockerfil.