GitLabデータベースを別のPostgreSQLインスタンスに移動
データベースをあるPostgreSQLインスタンスから別のPostgreSQLインスタンスに移動する必要があることがあります。例えば、AWS Auroraを使っていてDatabase Load Balancingを有効にする準備をしている場合、データベースをRDS for PostgreSQLに移動する必要があります。
インスタンスから別のインスタンスにデータベースを移動するには:
-
移動元と移動先の PostgreSQL エンドポイント情報を収集します:
SRC_PGHOST=<source postgresql host> SRC_PGUSER=<source postgresql user> DST_PGHOST=<destination postgresql host> DST_PGUSER=<destination postgresql user>
-
GitLab を停止します:
sudo gitlab-ctl stop
-
ソースからデータベースをダンプします:
/opt/gitlab/embedded/bin/pg_dump -h $SRC_PGHOST -U $SRC_PGUSER -c -C -f gitlabhq_production.sql gitlabhq_production /opt/gitlab/embedded/bin/pg_dump -h $SRC_PGHOST -U $SRC_PGUSER -c -C -f praefect_production.sql praefect_production
-
宛先にデータベースをリストアします(同じ名前の既存のデータベースは上書きされます):
/opt/gitlab/embedded/bin/psql -h $DST_PGHOST -U $DST_PGUSER -f praefect_production.sql postgres /opt/gitlab/embedded/bin/psql -h $DST_PGHOST -U $DST_PGUSER -f gitlabhq_production.sql postgres
-
GitLabアプリケーションサーバーを設定し、
/etc/gitlab/gitlab.rb
ファイルに保存先のPostgreSQLインスタンスに対する適切な接続詳細を設定します:gitlab_rails['db_host'] = '<destination postgresql host>'
GitLabの複数ノードセットアップの詳細については、リファレンスアーキテクチャを参照してください。
-
変更を有効にするために再設定します:
sudo gitlab-ctl reconfigure
-
GitLabを再起動します:
sudo gitlab-ctl start