タイトル通り、MetabaseをHerokuで使っていたら、Herokuからメールが飛んできた。
放置すると、ダッシュボードが使えなくなってしまうので、7日以内に対応が必要らしい
とりあえず原因が知りたいので、Herokuで使われているPostgres SQLに、PG Commanderからアクセス(※)し、片っ端からテーブルをSELECTしてみた。
※ 認証情報は、
heroku config -a {アプリ名}を実行すると知ることができる。
DATABASE_URL: {ユーザー名}:{パスワード}@{ホスト名}:{ポート番号}/{DBスキーマ名} のフォーマットで確認可能。
どうやら、task_historyテーブルというテーブルに9000行以上のレコードが入っていたので、こいつが原因ぽい。
metabaseはオープンソースなので、ソースコードを読んでみると、データベースとの同期をした際のログを取っているっぽい。
どこで使っているか知らないが、必要なさそうなのでレコードを削除してみたら動いた。
ERROR: Heroku Database Exceeded 10,000 Rows #11802というissueでもコミッターが「 You can truncate those tables, but always make a backup first!」と言っているので、まあ消しても大丈夫なんだと思う。
対応手順まとめ
- (初回のみ)PG Commanderをインストール
- metabaseの使用するDBの認証情報をheroku config -a {アプリ名}で調べる
- PG Commanderを使い、認証情報を入力してDBにアクセス
- SELECT * FROM task_historyを実行し、結果をエクスポートすることでバックアップを取る
- DELETE FROM task_historyを実行
まとめるとこんな感じでした〜。