🦔
[Heroku] 2つ以上のAPPから1つの同じPostgreSQLを使う
Setting
環境変数でDATABASE_URLを各アプリにコピペするのはめんどくさいしミスる可能性もあるしたまにあるアップデートでDBのURLが変更された場合に反映されないため、アドオンの共有で設定します。
まず、1つのアプリにPostgreSQLのアドオンを追加しておきます。ブラウザからでもコマンドでも構いません。
1つ目のアプリをtest-app-1として追加されているアドオンを確認します。
$ heroku addons -a test-app-1
Add-on Plan Price State
───────────────────────────────────────────── ───────── ───── ───────
heroku-postgresql (postgresql-xxxx-yyyy) hobby-dev free created
└─ as DATABASE
上記で表示されたアドオンのIDを確認しておきます。この場合はpostgresql-xxxx-yyyyとなっている部分です。
2つ目のアプリをtest-app-2として、確認したアドオンIDをもとにアドオンを追加します。
$ heroku addons:attach -a test-app-2 postgresql-xxxx-yyyy
Attaching postgresql-xxxx-yyyy to ⬢ test-app-2... done
Setting DATABASE config vars and restarting ⬢ test-app-2... done, v13
完了したら、アドオンが2つ目のアプリに追加されたことを確認します。
$ heroku addons -a test-app-2
Add-on Plan Price State
───────────────────────────────────────────── ───────── ──────────────────────────────── ───────
heroku-postgresql (postgresql-xxxx-yyyy) hobby-dev (billed to test-app-1 app) created
├─ as DATABASE
└─ as DATABASE on test-app-1 app
上記でアドオンがtest-app-1にも利用されていることがわかります。
最後に2つのアプリの環境変数に同じものがセットされているか確認します。
$ heroku config -a test-app-1
=== test-app-1 Config Vars
DATABASE_URL: postgres://xxxx:yyyy@ec2-xxxxx.compute-1.amazonaws.com:5432/zzzz
$ heroku config -a test-app-2
=== test-app-2 Config Vars
DATABASE_URL: postgres://xxxx:yyyy@ec2-xxxxx.compute-1.amazonaws.com:5432/zzzz
2つのDATABASE_URLが一致していれば完了です。
Discussion