N8Nで使用しているPostgreSQLの容量がとんでもないものになっていたので対処

概要

N8N のデータベース容量が凄い事になっていた

色々なタスクを繋いで自動化するために普段からn8nを使用しています。
以前書いた記事

先日メジャーバージョンアップしたのでアップデートする前にデータ容量を見てみた所、驚きの 「64GByte」 でした・・・。

流石にいくらなんでもデカすぎます。
バックアップする気にもならない容量となっていたのでデータを小さくする方法を調べました。

N8N のログデータを古いものから削除する設定

PostgreSQL なので「VACUUM」すればいいのかと思いましたが、なんか設定で古いデータを消してくれる設定があったみたいです。 こちらのフォーラムに同じような質問が上がっていました。

下記環境変数を設定することで起動時に古いログを削除してくれるようです。

1// Activates automatic data pruning
2export EXECUTIONS_DATA_PRUNE=true
3// Number of hours after execution when they should be deleted, by default 14 days
4export EXECUTIONS_DATA_MAX_AGE=336

「EXECUTIONS_DATA_MAX_AGE」のデフォルトが 14 日となっていますが、「EXECUTIONS_DATA_PRUNE」の方はデフォルトで true ではないのですね・・・。
デフォルトで true になってればよかったな。

SQLite の場合は VACUUM が必要

SQLite での運用している場合は環境変数の設定ではデータの削除を行えないみたいです。

こちらのフォーラムに記載されている方法で VACUUM 行うことになりそうです。

とりとめのないまとめ

現在、EXECUTIONS_DATA_MAX_AGE を 60 に設定して再起動かけたのですが、データが有りすぎるのか全然起動しません・・・。
ログ見ていると溜まっていたログが流れているので処理に時間がかかっているようです。

それと、N8N を v1.0 にするためには色々と確認するポイントがあるようです。
なにか嫌な予感がするのでもうしばらくはこのまま運用して、時間が取れるときに v1.0 にしようと思います。

翻訳: