mmag

ハマったことメモなど

BOLGのDBをPostgreSQL 11から13に上げた。

大体はここにある手順に従っただけなんだけど、記録だけ残しておきます。

render.com

まずはざっくり全体像。Dashboardが投稿画面。Frontが表示画面。FrontはGETリクエストしかしないので、投稿画面側だけ閉じて、メンテ中も記事の閲覧はできるようにしました。

f:id:Joe_noh:20211003162314p:plain

  • 環境変数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にデータが入っていることを確認
  • APIDATABASE_URLを新DBのものに変更
  • 新旧DBのコネクション数を見て接続先が変わったことを確認
  • 環境変数UNDER_MAINTENANCEクリアして通常の投稿画面に戻ったことを確認

丁寧にやるならAPIにもメンテ中フラグとか持たせるなりして、INSERTとかUPDATEとかしないようにすべきっちゃすべき。Ectoならread_onlyとかよさそう。あとは旧DB消したらおしまい。