初始化

This commit is contained in:
gozeros committed 2026-09-07 18:24:55 +08:00
1 parent 34474bd5fc
commit b638b541d0
3008 files changed
+837699

No files matched your search

@@ -0,0 +1,47 @@
"""Patch config.yaml for the MySQL business DB + SQLite checkpointer split."""
from __future__ import annotations
import argparse
from pathlib import Path
import yaml
def _parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser(description="Switch DeerFlow config.yaml to MySQL business storage")
parser.add_argument("--config", required=True, help="Path to config.yaml")
parser.add_argument("--mysql-url-env", default="MYSQL_DATABASE_URL", help="Environment variable referenced by database.mysql_url")
parser.add_argument("--checkpointer-sqlite", required=True, help="SQLite deerflow.db path used by LangGraph checkpointer")
parser.add_argument("--pool-size", type=int, default=10)
return parser.parse_args()
def main() -> None:
args = _parse_args()
config_path = Path(args.config)
data = yaml.safe_load(config_path.read_text(encoding="utf-8")) or {}
if not isinstance(data, dict):
raise SystemExit(f"Expected a mapping in {config_path}")
database = dict(data.get("database") or {})
database["backend"] = "mysql"
database["mysql_url"] = f"${args.mysql_url_env}"
database.setdefault("pool_size", args.pool_size)
database.setdefault("echo_sql", False)
data["database"] = database
data["checkpointer"] = {
"type": "sqlite",
"connection_string": args.checkpointer_sqlite,
}
config_path.write_text(
yaml.safe_dump(data, allow_unicode=True, sort_keys=False),
encoding="utf-8",
)
print(f"Updated {config_path}: database.backend=mysql, checkpointer.type=sqlite")
if __name__ == "__main__":
main()