K této chybě dochází, pokud máte jinou verzi klienta Postgresql (verze na serveru Odoo) a serveru (verze na vašem databázovém serveru). Pokud používáte Odoo „oficiální“ obrázek Dockeru nebo obrázek na něm založený, např. veivaa/odoo, je založen na verzi debian:stretch a má Postgresql verzi 9.6 jako výchozího klienta. S tímto nastavením budete mít nesoulad:klient v9.6 se připojuje k serveru v10. Výsledkem bude chyba, kterou dostáváte.
Chcete-li to vyřešit, musíte nainstalovat stejnou verzi na klienta a server. Můžete buď downgradovat svůj Postgres server na 9.6, nebo upgradovat Postgres klienta v kontejneru Odoo Docker na 10. Můžete to otestovat provedením upgradu klienta ručně. docker exec -ti -u 0 yourodoocontainername bash
do kontejneru Odoo a provedením těchto příkazů v kontejneru 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
Chcete-li je spustit, musíte mít v kontejneru oprávnění root. Po této instalaci můžete ukončit exec a restartovat kontejner pomocí docker restart yourodoocontainername
. Ujistěte se, že pro data Odoo používáte trvalé úložiště, abyste o své úložiště souborů nepřišli. Po těchto krocích budete moci provádět zálohy a obnovy pomocí webového rozhraní Odoo.
Verzi klienta Postgresql můžete zkontrolovat pomocí psql --version
příkaz. Očekávaný výsledek s verzí 9.6 je psql (PostgreSQL) 9.6.10
a s verzí 10 psql (PostgreSQL) 10.6 (Debian 10.6-1.pgdg90+1)
.
Metoda exec je dobrá pro testování, ale není vhodná pro trvalé použití, protože zahrnuje ruční kroky. Měli byste vytvořit obrázky Docker se správnou verzí úpravou souboru Docker.