提交内容:为数据库生命周期增加按白名单清单重建 Workflow Studio 表的受限流程,限定仅 MySQL 且检查当前连接数据库名称一致,避免误删非目标 schema。 启动流程中新增 DEER_FLOW_REBUILD_WORKFLOW_SCHEMA 环境变量入口与持久层重建 API,并在 lifespan 里按需执行;导出到 persistence 包,便于后续调用与测试复用。 迁移与模型修复:将 workflow 相关大文本字段切到 MySQL LONGTEXT,不再给 TEXT/LONGTEXT 设置 server_default;新增 draft_canvas_schema_json 的迁移回填与非空约束变更,规避 MySQL 5.7 对默认值限制。 测试覆盖:补充 workflow 定义 ddl 长文本断言与 schema 重建保护性测试(仅允许清单表、数据库名不匹配直接拒绝),并把新测试文件加入版本追踪。
26 lines
677 B
Python
26 lines
677 B
Python
"""DeerFlow application persistence layer (SQLAlchemy 2.0 async ORM).
|
|
|
|
This module manages DeerFlow's own application data -- runs metadata,
|
|
thread ownership, cron jobs, users. It is completely separate from
|
|
LangGraph's checkpointer, which manages graph execution state.
|
|
|
|
Usage:
|
|
from deerflow.persistence import init_engine, close_engine, get_session_factory
|
|
"""
|
|
|
|
from deerflow.persistence.engine import (
|
|
close_engine,
|
|
get_engine,
|
|
get_session_factory,
|
|
init_engine,
|
|
rebuild_workflow_schema_for_mysql,
|
|
)
|
|
|
|
__all__ = [
|
|
"close_engine",
|
|
"get_engine",
|
|
"get_session_factory",
|
|
"init_engine",
|
|
"rebuild_workflow_schema_for_mysql",
|
|
]
|