初始化
This commit is contained in:
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()
|
||||
Reference in new issue
Block a user