Kesalahan ini terjadi jika Anda memiliki versi klien Postgresql yang berbeda (versi di server Odoo) dan server (versi di server database Anda). Jika Anda menggunakan gambar atau gambar Docker "resmi" Odoo berdasarkan itu, mis. veivaa/odoo image, ini didasarkan pada debian:versi stretch dan memiliki Postgresql versi 9.6 sebagai klien default. Dengan pengaturan ini Anda akan memiliki ketidakcocokan:klien v9.6 terhubung ke server v10. Ini akan mengakibatkan kesalahan yang Anda dapatkan.
Untuk mengatasi ini, Anda harus menginstal versi yang sama di klien dan server. Anda dapat menurunkan server Postgres Anda ke 9.6, atau meningkatkan klien Postgres di wadah Odoo Docker Anda ke 10. Anda dapat menguji ini dengan melakukan peningkatan klien secara manual. docker exec -ti -u 0 yourodoocontainername bash
ke wadah Odoo dan menjalankan perintah ini di dalam wadah 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
Anda harus memiliki izin root dalam wadah untuk menjalankannya. Setelah instalasi ini, Anda dapat keluar dari exec dan memulai ulang wadah Anda dengan docker restart yourodoocontainername
. Pastikan Anda memiliki penyimpanan persisten yang digunakan untuk data Odoo sehingga Anda tidak kehilangan filestore Anda. Setelah langkah-langkah ini, Anda dapat melakukan pencadangan dan pemulihan dengan antarmuka web Odoo.
Anda dapat memeriksa versi klien Postgresql Anda dengan psql --version
memerintah. Hasil yang diharapkan dengan versi 9.6 adalah psql (PostgreSQL) 9.6.10
dan dengan versi 10 psql (PostgreSQL) 10.6 (Debian 10.6-1.pgdg90+1)
.
Metode exec baik untuk pengujian tetapi tidak baik untuk penggunaan permanen karena melibatkan langkah-langkah manual. Anda harus membuat image Docker dengan versi yang tepat dengan memodifikasi Dockerfile Anda.