官方提供了一个 清理过期日志的方法 :
https://docs.dify.ai/zh-hans/learn-more/faq/install-faq#23-如何删除旧日志和未使用的文件以减少存储使用量?
echo "from models import Tenant; [print(f'Tenant ID: {t.id}, Name: {t.name}') for t in db.session.query(Tenant).all()]; quit()" | flask shell
打开api的容器终端,执行 先获取 tenantid 。然后再清理。

容器对应终端打开:
postgres=#
第一步: 连接数据库 psql -h localhost -U postgres
第二步 查看数据库 \l
第三步 选择数据库 \c dify
第四步 执行sql语句

使用 \l 用于查看已经存在的数据库:
postgres=# \l
接下来我们可以使用 \c + 数据库名 来进入数据库:
----这是3天
DELETE FROM public.workflow_runs
WHERE created_at < CURRENT_TIMESTAMP - INTERVAL '10 days';
DELETE FROM public.workflow_node_executions
WHERE created_at < CURRENT_TIMESTAMP - INTERVAL '10 days';
DELETE FROM public.messages
WHERE created_at < CURRENT_TIMESTAMP - INTERVAL '10 days';
DELETE FROM public.conversations
WHERE created_at < CURRENT_TIMESTAMP - INTERVAL '10 days';
DELETE FROM public.workflow_conversation_variables
WHERE created_at < CURRENT_TIMESTAMP - INTERVAL '10 days';
DELETE FROM public.end_users
WHERE created_at < CURRENT_TIMESTAMP - INTERVAL '10 days';
==============一周
DELETE FROM public.workflow_runs
WHERE created_at < CURRENT_TIMESTAMP - INTERVAL '1 week';
DELETE FROM public.workflow_node_executions
WHERE created_at < CURRENT_TIMESTAMP - INTERVAL '1 week';
DELETE FROM public.conversations
WHERE created_at < CURRENT_TIMESTAMP - INTERVAL '1 week';
DELETE FROM public.messages
WHERE created_at < CURRENT_TIMESTAMP - INTERVAL '1 week';
DELETE FROM public.end_users
WHERE created_at < CURRENT_TIMESTAMP - INTERVAL '1 week';
DELETE FROM public.workflow_app_logs
WHERE created_at < CURRENT_TIMESTAMP - INTERVAL '1 week';
----这是3天
DELETE FROM public.workflow_runs
WHERE created_at < CURRENT_TIMESTAMP - INTERVAL '3 days';
DELETE FROM public.workflow_node_executions
WHERE created_at < CURRENT_TIMESTAMP - INTERVAL '3 days';
DELETE FROM public.messages
WHERE created_at < CURRENT_TIMESTAMP - INTERVAL '3 days';
DELETE FROM public.conversations
WHERE created_at < CURRENT_TIMESTAMP - INTERVAL '3 days';
DELETE FROM public.workflow_conversation_variables
WHERE created_at < CURRENT_TIMESTAMP - INTERVAL '3 days';
DELETE FROM public.end_users
WHERE created_at < CURRENT_TIMESTAMP - INTERVAL '3 days';
用 docker 部署的要先把 yaml 修改下,把PostgreSQL映射端口出来,再用数据库客户端工具连上 PostgreSQL ,账号密码再 .env 文件中。
浙公网安备 33010602011771号