高木のブログ

【Heroku】データベースの自動メンテナンスの記録

2021/11/21

いつも使っているHerokuでデータベースのメンテナンスがあった

しばらく待っていたら接続できるようになったんだけど、初めてのことでかなり焦ったので記録として残しておく

環境変数の変更まで終わってからメンテナンス完了のメールを送ってきて欲しいという感想

流れ

[2021/11/21 14:15] メンテナンスの告知メールが届く

Your database DATABASE_URL on [アプリ名] requires maintenance. During this period, your database will become read-only. Once maintenance has completed, your database credentials and hostname will have changed, but we will update your app’s config variables accordingly to reflect the new database connection string.

This automated maintenance is a necessary part of our Hobby tier plans, Dev and Basic. Should you need more control over maintenance windows, a production database (Standard tier or higher) offers more control over database maintenance, as we are able to schedule them in advance and provide better tools for self-served maintenance.

We expect maintenance to last just a few moments depending on the size of your database. We will notify you when maintenance begins, and again once it’s complete.

いつメンテナンスが始めるのか書かれていないから不安だ

[2021/11/21 14:31] メンテナンス開始のお知らせメールが届く

Maintenance (DATABASE_URL on [アプリ名]) is starting now. We will update you when it has completed.

アプリケーションがエラーを吐くようになった

データベースは読み取り専用になり、アクセスごとにInsert文を発行するアプリケーションなのでそこでエラーになっていた

[2021/11/21 15:04] メンテナンス完了のお知らせメールが届く

Maintenance (DATABASE_URL on [アプリ名]) has completed successfully.

完了の連絡がきたが、アプリケーションは引き続きエラーを吐いている

heroku logs でログを確認すると、データベースに接続できないエラーメッセージ

heroku config で環境変数を確認すると DATABASE_URL は変わっている様子はない

[2021/11/21 15:13] アプリケーションにアクセスできるようになった

heroku configDATABASE_URL が新しい値に変わっていることが確認できた

アプリケーションにアクセスすると無事表示されるようになった

めでたし、めでたし

補足

アプリケーション自体はFreeプランを使っているが、データベースはHobby DevプランからHobby Basicプランに変更している

Herokuで使っているデータベースを有料プランへ切り替える(Hobby Basicプラン)


ytkg

Written by ytkg, Twitter, GitHub