Django
Heroku
PostgreSQL

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

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