Тази грешка възниква, ако имате различна версия на клиента Postgresql (версията на сървъра на Odoo) и сървъра (версията на сървъра на вашата база данни). Ако използвате „официалния“ Docker образ на Odoo или базиран на него образ, напр. veivaa/odoo изображение, базирано е на debian:stretch версия и има Postgresql версия 9.6 като клиент по подразбиране. С тази настройка ще имате несъответствие:клиент v9.6 се свързва със сървър v10. Това ще доведе до грешката, която получавате.
За да разрешите това, трябва да инсталирате една и съща версия на клиент и сървър. Можете или да понижите своя Postgres сървър до 9.6, или да надстроите Postgres клиента във вашия Odoo Docker контейнер до 10. Можете да тествате това, като извършите ръчно надграждане на клиента. docker exec -ti -u 0 yourodoocontainername bash
към контейнера Odoo и изпълнение на тези команди вътре в контейнера 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
Трябва да имате root права в контейнера, за да ги стартирате. След тази инсталация можете да излезете от exec и да рестартирате контейнера си с docker restart yourodoocontainername
. Уверете се, че използвате постоянно хранилище за Odoo данни, за да не загубите хранилището си за файлове. След тези стъпки можете да правите архивиране и възстановяване с уеб интерфейса на Odoo.
Можете да проверите вашата клиентска версия на Postgresql с psql --version
команда. Очакваният резултат с версия 9.6 е psql (PostgreSQL) 9.6.10
и с версия 10 psql (PostgreSQL) 10.6 (Debian 10.6-1.pgdg90+1)
.
Методът exec е добър за тестване, но не е добър за постоянна употреба, защото включва ръчни стъпки. Трябва да създадете своите Docker изображения с правилната версия, като промените своя Dockerfile.