【Heroku】Postgres Maintenanceのスケジュール設定手順
1.目的
Heroku Postgresのアドオンを使用していると、数ヶ月に1回のペースでメンテナンス実施の連絡がbot@notifications.heroku.comよりメールで届きます(タイトルは『Your Postgres add-on requires maintenance』でした)。
本記事では、メンテナンス時刻のスケジュール設定手順を記載します。
2.補足
正直なところ公式ページ(下部「リンク」に記載)の通りに操作すれば詰まることなく設定できます。
ただ、日本語の情報が少なかったので、本記事を投稿します。
3.設定
以降「sushi」をアプリ名とします(本家リスペクト)。
また、特別な注釈がない限りコマンドライン(CLI)での操作を表します。
ⅰ. 変更前のメンテナンス時刻を確認します。
$ heroku pg:info -a sushi
〜〜〜〜〜
=== DATABASE_URL
〜〜〜〜〜
Maintenance: scheduled for 2018-05-06 14:30:00 +0000, required by 2018-05-10 21:00:00 +0000, replacement currently being prepared
〜〜〜〜〜
「Maintenance」に注目して下さい。
「scheduled for」より後にスケジューリングされている日時、
「required by」より後に期限日時が記載されています。
なお、日時はUTCなのでご注意下さい。
ⅱ. メンテナンス時刻を設定します。
$ heroku pg:maintenance:window DATABASE "Tuesday 17:00" -a sushi
くどいですが、日時はUTCです。
上記の例では「次の火曜日の17:00」(JSTだと火曜日の26:00)に設定しています。
ⅲ. 変更後のメンテナンス時刻を確認します。
$ heroku pg:info -a sushi
〜〜〜〜〜
=== DATABASE_URL
〜〜〜〜〜
Maintenance: scheduled for 2018-05-08 17:00:00 +0000, required by 2018-05-10 21:00:00 +0000, replacement currently being prepared
Maintenance window: Tuesdays 17:00 to 21:00 UTC
〜〜〜〜〜
「Maintenance」に注目して下さい。
「scheduled for」より後ろの日時が、想定どおりの日時となっていれば、作業完了です。
また、「Maintenance window」にメンテナンスモードの期間が記載されています。本記事の要旨とは外れますが、メンテナンスモード中のアプリのケアや、ユーザへの連絡が必要になるかもしれません。
なお、日時はUTCです。
4.リンク
■Heroku公式ページ(英語)
https://devcenter.heroku.com/articles/heroku-postgres-maintenance
■UTCとJSTの時刻変換サイト
https://www.jisakeisan.com/?t1=utc&t2=jst
この記事が気に入ったらサポートをしてみませんか?