このエラーは、Postgresqlクライアント(Odooサーバー上のバージョン)とサーバー(データベースサーバー上のバージョン)のバージョンが異なる場合に発生します。 Odooの「公式」Dockerイメージまたはそれに基づくイメージを使用している場合。 veivaa / odooイメージ、debian:stretchバージョンに基づいており、デフォルトのクライアントとしてPostgresqlバージョン9.6があります。この設定では、不一致が発生します。クライアントv9.6がサーバーv10に接続します。エラーが発生します。
これを解決するには、クライアントとサーバーに同じバージョンをインストールする必要があります。 Postgresサーバーを9.6にダウングレードするか、Odoo Dockerコンテナー内のPostgresクライアントを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データに永続ストレージを使用していることを確認してください。これらの手順を実行すると、OdooWebインターフェイスを使用してバックアップと復元を実行できるようになります。
psql --version
を使用して、Postgresqlクライアントのバージョンを確認できます。 指図。バージョン9.6で期待される結果は、psql (PostgreSQL) 9.6.10
です。 バージョン10ではpsql (PostgreSQL) 10.6 (Debian 10.6-1.pgdg90+1)
。
execメソッドはテストには適していますが、手動の手順が含まれるため、永続的な使用には適していません。 Dockerfileを変更して、適切なバージョンでDockerイメージを構築する必要があります。