LoginSignup
5
2

More than 5 years have passed since last update.

herokuのPostgresql row数を圧迫するdjango_admin_logを削除

Last updated at Posted at 2018-01-30

HerokuのPostgresqlが圧迫 → django_admin_logテーブルが原因でした

Heroku上でDjangoアプリを開発・運用しているのだが,自分が利用している以上にPostgresqlのRow数が増えていることに気がついた.
無料で利用できるRow数は10000(?)で,4000Rowぐらい利用していた.
体感的には1000Rowないぐらいだったので,原因究明と解決に取り組んだ.

簡潔に結論を述べると原因は,django_admin_logテーブル(admin操作の履歴?)が3000Row以上占めていた.これは実際にアプリで使用しているテーブルにて,全件削除・既存データから読み込みを複数回繰り返したことが原因だった.
このテーブルを全件削除することで,問題に対処できた.

以下が操作手順である.

postgresqlのinstall

heroku上のPostgresqlを操作するには,ローカルにpsqlコマンドのインストールが必要だった.
ここはhomebrewで対応

brew install postgresql

postgresql on heroku の操作

続いて,terminalからherokuコマンドで,heroku上のPostgresqlの操作を行う

heroku pg:psql
# record数確認
SELECT T2.relname , T2.reltuples FROM pg_stat_user_tables AS T1 INNER JOIN pg_class AS T2 ON T1.relname = T2.relname ORDER BY T2.relname;
#--> django_admin_log のRow数が圧倒的に多いことに気付く

# 削除
DELETE * FROM django_admin_log;

参考URL

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2