【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



この記事が気に入ったらサポートをしてみませんか?