BOLGのDBをPostgreSQL 11から13に上げた。
大体はここにある手順に従っただけなんだけど、記録だけ残しておきます。
まずはざっくり全体像。Dashboardが投稿画面。Frontが表示画面。FrontはGETリクエストしかしないので、投稿画面側だけ閉じて、メンテ中も記事の閲覧はできるようにしました。
- 環境変数で
UNDER_MAINTENANCE
フラグを立てると投稿画面がメンテ中ごめんね表示になるように変更 - 新DB作成
- 環境変数
UNDER_MAINTENANCE
セットしてメンテナンス中画面になったことを確認 - 現DBから
pg_dump
PGPASSWORD=XXX pg_dump -h oregon-postgres.render.com -U db_user db_name -n public --no-owner > dump.sql
- 新DBへrestore
PGPASSWORD=YYY psql -h oregon-postgres.render.com -U new_db_user new_db < dump.sql
- 適当にSELECTしてみて新DBにデータが入っていることを確認
- APIの
DATABASE_URL
を新DBのものに変更 - 新旧DBのコネクション数を見て接続先が変わったことを確認
- 環境変数
UNDER_MAINTENANCE
クリアして通常の投稿画面に戻ったことを確認
丁寧にやるならAPIにもメンテ中フラグとか持たせるなりして、INSERTとかUPDATEとかしないようにすべきっちゃすべき。Ectoならread_only
とかよさそう。あとは旧DB消したらおしまい。