AWS のバージョン不一致によりバックアップができません

こんにちは。外部の AWS RDS インスタンス(PostgreSQL 11.x)を指す環境を設定しています。

UI からバックアップを実行しようとすると、以下のエラーが発生します。

[2019-10-25 21:50:35] データベースの public スキーマをダンプしています...
[2019-10-25 21:50:35] pg_dump: サーバーバージョン: 11.5; pg_dump バージョン: 10.10 (Debian 10.10-1.pgdg100+1)
[2019-10-25 21:50:35] pg_dump: サーバーバージョンの不整合により中止しました

これは、Docker コンテナ内の pg_dump バージョンと、外部 RDS データベースのバージョンが一致していないことが原因だと思われます。この問題に対処する方法について、ご提案はありますか?11.x ではない外部データベースを使用するべきでしょうか?

現在サポートされている PostgreSQL のバージョンは 10.x です。次のリリースサイクルで 12.x へのアップグレードを予定しています。

Google Cloud Platform はデフォルトで Postgres 11 を提供しています。バージョン 10 は「ベータ」としてのみ利用可能です。

11.x へのサポートはいつ提供される見込みですか?

数ヶ月以内に 12.x への移行を予定しています。11.x はスキップされます。

Postgres 11 へのデプロイは既に完了しています。
引き続き利用することは可能でしょうか?
動作しないのはバックアップ機能だけでしょうか?
エクスポート/インポートが不可能な場合、10 へダウングレードするにはどうすればよいでしょうか?

PostgreSQLは機能の動作維持に非常に堅牢で、機能を安易に削除しないため、コンテナ内の pg_dump のバージョンに依存するバックアップとリストアを除き、動作するはずです。

当社はこれを実行せず、テストも行っていないため、問題が発生した場合は自己責任となります。

私どもも同じ状況でした。ドキュメント で Postgres 10 以上が必要とされていたため、GCP 管理型 Postgres 11 をデプロイしていました。

最終的には、ブートストラップにカスタムコマンドを追加して PG 11 のクライアントツールをインストールし、デフォルトで pg_dump がそのバージョンを使用するように切り替えました。

  - exec:
      cmd:
        - apt-get update && apt-get install postgresql-client-11 && update-alternatives --install /usr/bin/pg_dump pg_dump /usr/lib/postgresql/11/bin/pg_dump 1

これは妥当な回避策です。公式イメージ内の PostgreSQL を今後数ヶ月以内にバージョン 12 にアップグレードする予定です。

PostgreSQL 12 update にて PostgreSQL 12 の更新が公開されました。これは AWS RDS で利用可能です。