| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- """把现有 data/queries/demo.json + search_results.json 导入 data/app.db。
- 一次性迁移 / 重导用。run_id 用固定名(demo / search-demo),重导幂等覆盖。
- 用法:PYTHONPATH=. python scripts/import_to_db.py
- """
- from __future__ import annotations
- import json
- import time
- from pathlib import Path
- from acquisition import store
- ROOT = Path(__file__).resolve().parent.parent
- DEMO = ROOT / "data" / "queries" / "demo.json"
- SEARCH = ROOT / "data" / "queries" / "search_results.json"
- def main() -> None:
- ts = int(time.time())
- conn = store.connect()
- try:
- if DEMO.exists():
- demo = json.loads(DEMO.read_text("utf-8"))
- for key in ("tactic1", "tactic2", "tactic3", "tactic4"):
- t = demo.get(key) or {}
- items = t.get("items") or []
- if not items:
- continue
- n = store.insert_queries(conn, "demo", t.get("name", key), items, ts=ts)
- print(f"queries[{t.get('name', key)}]: {n} 条")
- if SEARCH.exists():
- recs = json.loads(SEARCH.read_text("utf-8"))
- n = store.insert_search_results(conn, "search-demo", recs, ts=ts)
- print(f"search_results: {n} 行({len(recs)} 条 query × 平台拍平)")
- print("runs:", [r["run_id"] for r in store.list_runs(conn)])
- finally:
- conn.close()
- if __name__ == "__main__":
- main()
|