test_schema_contract.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from pathlib import Path
  2. ROOT = Path(__file__).resolve().parents[2]
  3. def test_knowledge_v100_schema_covers_dynamic_update_control_plane():
  4. migration = (
  5. ROOT / "migrations/versions/20260720_100_llamaindex_lightrag_knowledge.py"
  6. ).read_text(encoding="utf-8")
  7. assert 'revision = "20260720_100"' in migration
  8. assert 'down_revision = "20260719_90"' in migration
  9. for table in (
  10. "user_business_domain_grants",
  11. "knowledge_points",
  12. "knowledge_point_dependencies",
  13. "knowledge_change_sets",
  14. "knowledge_change_items",
  15. "knowledge_embedding_profiles",
  16. "knowledge_chunk_embeddings",
  17. "knowledge_index_projections",
  18. "knowledge_cache_dependencies",
  19. "knowledge_query_audits",
  20. "knowledge_evaluation_sets",
  21. "knowledge_evaluation_cases",
  22. "knowledge_evaluation_runs",
  23. "knowledge_evaluation_results",
  24. ):
  25. assert f"public.{table}" in migration
  26. for column in (
  27. "point_key",
  28. "point_revision",
  29. "source_revision",
  30. "source_snapshot_hash",
  31. "impact_truncated",
  32. "primary_point_key",
  33. "point_set_hash",
  34. "search_vector",
  35. ):
  36. assert column in migration
  37. assert "uq_knowledge_point_active" in migration
  38. assert "CREATE EXTENSION IF NOT EXISTS pg_trgm" in migration
  39. assert "def downgrade" in migration
  40. assert "DROP TABLE public.governance_documents" not in migration