PostgreSQL拡張機能を管理する
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
GitLabは、すべてのデータベースに特定のPostgreSQL拡張機能を必要とします。必須の拡張機能と最小限のGitLabバージョンのリストについては、PostgreSQLの要件を参照してください。
拡張機能をインストールするには、PostgreSQLにはスーパーユーザー権限が必要です。GitLabデータベースユーザーは通常スーパーユーザーではないため、GitLabをアップグレードする前に拡張機能を手動でインストールする必要があります。
必須の拡張機能をインストールする
スーパーユーザーを使用してGitLab PostgreSQLデータベースに接続します。例:
sudo gitlab-psql -d gitlabhq_production拡張機能(この例では
btree_gist)を、CREATE EXTENSIONを使用してインストールします:CREATE EXTENSION IF NOT EXISTS btree_gistインストールされている拡張機能を検証します:
gitlabhq_production=# \dx
一部のシステムでは、特定の拡張機能を利用可能にするために、追加のパッケージ(例えばpostgresql-contrib)をインストールする必要がある場合があります。
pg_stat_statementsを有効にする
pg_stat_statementsは、遅いデータベースクエリのトラブルシューティングに推奨されます。これを有効にするには、スーパーユーザー権限とPostgreSQLの再起動が必要です。
postgresql.confのshared_preload_librariesにpg_stat_statementsを追加します。Linuxパッケージインストールの場合、以下を/etc/gitlab/gitlab.rbに追加します:postgresql['shared_preload_libraries'] = 'pg_stat_statements'PostgreSQLを再起動します。
スーパーユーザーとして拡張機能を作成します:
CREATE EXTENSION IF NOT EXISTS pg_stat_statements
詳細については、オプションのクエリ統計データを有効にするを参照してください。
トラブルシューティング
PostgreSQL拡張機能を使用しているときに、次の問題が発生する可能性があります。
拡張機能が不足しているため移行が失敗する
データベースの移行が、拡張機能が不足しているために失敗した場合は、スーパーユーザーとして手動でインストールし、その後移行を再実行します:
sudo gitlab-rake db:migrate