Retoolのストレージ・データベース

ほとんどのオンプレミス設定(Docker ComposeとKubernetes)では、ユーザー情報およびドキュメントは、永続ボリュームでPostgresql Dockerコンテナーに格納されています。これは、使用量が増加した場合に、さらに冗長性を確保するために外部でホストされているデータベース・ソリューションの使用に切り替える際に役立ちます。

📘

必要なストレージの量

新規Retoolインスタンス用にデータベースを設定する際に、ストレージに少なくとも60GBを割り当てることを推奨します。既存の大規模なRetoolインスタンスを移行する場合、さらに領域が必要になることがあります。

1. RetoolのDockerコンテナーからのデータのエクスポート

RetoolのPostgresコンテナーからデータをエクスポートするには、現在、Retool Dockerコンテナーをホストしている仮想マシンで次のコマンドを実行します。

sudo docker exec -t retoolonpremise_postgres_1 \
	pg_dump hammerhead_production --no-acl --no-owner --clean \
	-U  postgres > retool_db_dump.sql

データベース・ダンプは、現在、前述のコマンドを実行したディレクトリーのretool_db_dump.sqlという名前のファイルにあります。

2. 外部でホストされているデータベースへのデータの移行(例: RDS)

ダンプを外部データベースに復元するには、次のコマンドを実行します(ここでのDB_CONNECTION_URIは、外部でホストされているデータベースに接続するPostgresql接続文字列です)。

psql DB_CONNECTION_URI -f retool_db_dump.sql

注意: DB_CONNECTION_URIは、この形式にする必要があります。

3. 外部のデータベースを使用するようにするためのRetoolの構成

docker.envファイルで、接続先データベースなど、Retoolのオプションをいくつか定義します。編集する必要のある行には、次のパターンがあります。

POSTGRES_DB=hammerhead_production
POSTGRES_USER=retool_internal_user
POSTGRES_HOST=postgres
POSTGRES_PORT=5432
POSTGRES_PASSWORD={a random string}

ここで、新しく作成したデータベースに対応する次の変数を編集します。以下に、例を示します。

POSTGRES_DB=retooldb
POSTGRES_USER=retool_user
POSTGRES_HOST=retool.xxxxxxxxxx.us-east-2.rds.amazonaws.com
POSTGRES_PORT=5432
POSTGRES_PASSWORD=xyzabc

別の方法として、5つの環境変数を削除して、かわりに次のようなデータベース接続文字列を指定することもできます。

DATABASE_URL=postgres://retool_user:[email protected]:5432/retooldb

4. Retoolサーバーの再起動

最後に、retool_onpremiseディレクトリーから次のコマンドを実行して、サーバーを再起動します。

sudo docker-compose up -d