PostgreSQLバージョンの管理

通常、PostgreSQLは3つのバージョンで出荷されています。 私たちは、古いバージョンから最新のバージョンへのアップグレードだけでなく、すべてのバージョンでの実行をサポートする必要があります。

ソフトウェアの定義

ソフトウェアの定義が入りました:

  • config/software/postgresql_old.rb
  • config/software/postgresql.rb
  • config/software/postgresql_new.rb

デフォルトバージョン

デフォルトでインストールされるバージョンは、「link bin files」ステップを使用して制御されます。 このステップで定義されたソフトウェアは、新規インストールで使用されます。

アップグレード

gitlab-ctl pg-upgrade コマンド は、postgresql_old またはpostgresql からpostgresql_newへのアップグレードに使用します。使い方については、ドキュメントを参照してください。

自動アップグレード

gitlab-ctl pg-upgrade コマンド はアップグレードのたびに実行されます。 インストール時に自動的にアップグレードされる PostgreSQL のバージョンと変更したい場合は、アップグレードと revert コマンドで使用されるデフォルトのバージョンを変更する必要があります。

古いバージョンの削除

古いバージョンを削除するときは、次の手順を実行します:

  1. 走るgit rm config/software/postgresql_old.rb
  2. 走るgit mv config/software/postgresql{,_old}.rb
  3. config/software/postgresql_old.rb を編集し、名前をpostgresql から次のように変更します。postgresql_old
  4. 走るgit mv config/software/postgresql{_new,}.rb
  5. config/software/postgresql.rb を編集し、名前をpostgresql_new から次のように変更します。postgresql

新しいバージョンの追加

現在、3つのバージョンの出荷をサポートしています:

  1. 走るgit cp config/software/postgresql{,_new}.rb
  2. 編集config/software/postgresql_new.rb更新:

    1. namepostgresql_new
    2. default_version 新バージョンへ
    3. version で新しいバージョンが表示されsha256
    4. major_version 必要ならば

さらに、次のことも確認してください:

  1. パッケージのビルドには PostgreSQL の両方のバージョンが含まれています。
  2. gitlab-ctl pg-upgrade

の場合libpq

pyscopg2を含むいくつかのモジュールはPostgreSQLクライアントライブラリに依存しています。libpq. libpqPostgreSQLlibpqクライアントライブラリは常に最新のバンドルバージョンにリンクする必要があります。 最新バージョンを使用することで、. libpqPostgreSQLクライアントライlibpqブラリの後方互換性に依存 libpqします。