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

Author Image

Enzo

· 2023/08/18 · 3 min read
TopImage
INDEX

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

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

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

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

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

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

remark-link-card
Hard disk full - where to delete logs?
Hi - great app, thank you all! My hard drive is full and I can no longer save my workflow. I’m assuming it’s the buildup of n8n logs, since everything was working well for a while. Can you please point me to where the logs are saved, so I can delete some? If it matters, I installed using npm, not docker. Thank you so much!
remark-link-card favicon Hard disk full - where to delete logs?

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

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

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

SQLite の場合は VACUUM が必要

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

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

remark-link-card
How to vacuum sqlite database?
I want to know how to vacuum sqlite database. I tried a syntax MANUAL VACUUM command for the whole database from command prompt:

$sqlite3 database_name "VACUUM;"; But it's giving error as:

near "

remark-link-card favicon How to vacuum sqlite database?

とりとめのないまとめ

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

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

# Linux