db_manager.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. """DemandAgent PG Pattern V2 query facade.
  2. Historically this module opened the MySQL Pattern compatibility schema. The PG
  3. migration keeps the function names used by DemandAgent, but all
  4. Pattern evidence reads now go through `pg_pattern_repository` and are read-only.
  5. """
  6. from __future__ import annotations
  7. from examples.demand.pg_pattern_repository import (
  8. DEFAULT_DEMAND_PLATFORM,
  9. normalize_platform,
  10. query_case_ids_by_post_ids,
  11. query_category_level,
  12. query_element_bindings_for_items,
  13. query_execution_for_evidence,
  14. query_itemset_evidence,
  15. query_itemset_items_with_categories,
  16. query_seed_points_for_sources,
  17. query_latest_success_execution_id,
  18. query_seed_points_for_itemsets,
  19. query_source_elements,
  20. query_video_ids_by_names,
  21. )
  22. class DatabaseManager:
  23. """Legacy guard.
  24. PG Pattern V2 does not expose a SQLAlchemy MySQL session. Old prepare paths
  25. must be migrated before production use; local MVP uses explicit PG
  26. execution_id and never calls `get_session()`.
  27. """
  28. def get_session(self):
  29. raise RuntimeError(
  30. "DatabaseManager MySQL session was removed; use PG Pattern V2 "
  31. "repository functions instead"
  32. )
  33. def exist_cluster_tree(merge_level2: str) -> bool:
  34. """Return whether a successful PG Pattern V2 execution is available.
  35. The old implementation checked MySQL cluster tree state by merge_level2.
  36. The PG-only MVP consumes existing Pattern V2 executions instead, so this is
  37. a conservative readiness check used only by legacy web guards.
  38. """
  39. del merge_level2
  40. return query_latest_success_execution_id() is not None
  41. __all__ = [
  42. "DatabaseManager",
  43. "DEFAULT_DEMAND_PLATFORM",
  44. "exist_cluster_tree",
  45. "normalize_platform",
  46. "query_case_ids_by_post_ids",
  47. "query_category_level",
  48. "query_element_bindings_for_items",
  49. "query_execution_for_evidence",
  50. "query_itemset_evidence",
  51. "query_itemset_items_with_categories",
  52. "query_latest_success_execution_id",
  53. "query_seed_points_for_itemsets",
  54. "query_seed_points_for_sources",
  55. "query_source_elements",
  56. "query_video_ids_by_names",
  57. ]