🚣

Fly.ioのRailsアプリでデータベースを作成して接続する方法

2023/07/29に公開

Fly.ioでRailsアプリを運用していて、接続するデータベースを別のデータベースに切り替えることがありました。以下の手順で接続先のデータベースを切り替えることができました。

既存データベースのバックアップ

既存データベースにプロキシで接続します。

fly proxy 15432:5432 -a <postgres-app-name>

pg_dumpで既存データベースのバックアップを作成します。

pg_dump -Fc -h localhost -p 15432 -U <dbuser> <dbname> > <dbname>.dump

接続先のデータベースを作成

fly postgres create 

データベースの接続を設定

既存データベースの接続を解除

既存データベースの接続を解除します。このコマンドの実行後から作業が完了するまではアプリが動作しなくなります。

fly postgres detach --app <app-name> <postgres-app-name>

作成したデータベースへの接続を設定

 fly postgres attach --app <app-name> <postgres-app-name>

データベースの接続文字列が表示されるので、それをアプリのsecretsに設定します。

fly secrets set DATABASE_URL='<database-url>'

データベースのリストア

接続先のデータベースにプロキシで接続します。

fly proxy 15432:5432 -a <postgres-app-name>

pg_restoreでデータをリストアすれば完了です。

pg_restore --clean --no-acl --no-owner -h localhost -p 15432 -U <dbuser> -d <dbname> <dbname>.dump

Discussion