gabriel / musehub public
0012_phase5_ci_gate_config_and_test_mappings.py python
78 lines 3.0 KB
Raw
sha256:a10adeeb7a0169cb9900f9806ed7a973047258abb6283724fe55e8eb68ff3f0a init: musehub initial commit Human 171 days ago
1 """Phase 5: add ci_gate_config to musehub_repos, add musehub_ci_test_mappings table.
2
3 Revision ID: 0012
4 Revises: 0011
5 """
6
7 from alembic import op
8 import sqlalchemy as sa
9
10 revision = "0012"
11 down_revision = "0011"
12 branch_labels = None
13 depends_on = None
14
15
16 def upgrade() -> None:
17 # ── musehub_repos: ci_gate_config ────────────────────────────────────────
18 op.add_column(
19 "musehub_repos",
20 sa.Column("ci_gate_config", sa.JSON(), nullable=False, server_default="{}"),
21 )
22
23 # ── musehub_ci_runs: gate_results ────────────────────────────────────────
24 op.add_column(
25 "musehub_ci_runs",
26 sa.Column("gate_results", sa.JSON(), nullable=False, server_default="{}"),
27 )
28
29 # ── musehub_ci_test_mappings ──────────────────────────────────────────────
30 op.create_table(
31 "musehub_ci_test_mappings",
32 sa.Column("mapping_id", sa.String(36), primary_key=True),
33 sa.Column(
34 "run_id",
35 sa.String(36),
36 sa.ForeignKey("musehub_ci_runs.run_id", ondelete="CASCADE"),
37 nullable=False,
38 unique=True,
39 ),
40 sa.Column(
41 "repo_id",
42 sa.String(36),
43 sa.ForeignKey("musehub_repos.repo_id", ondelete="CASCADE"),
44 nullable=False,
45 ),
46 sa.Column("commit_id", sa.String(255), nullable=False),
47 sa.Column("changed_symbols", sa.JSON(), nullable=False, server_default="[]"),
48 sa.Column("selected_tests", sa.JSON(), nullable=False, server_default="[]"),
49 sa.Column("covered_addresses", sa.JSON(), nullable=False, server_default="[]"),
50 sa.Column("uncovered_addresses", sa.JSON(), nullable=False, server_default="[]"),
51 sa.Column("coverage_fraction", sa.Float(), nullable=False, server_default="0.0"),
52 sa.Column("selected_count", sa.Integer(), nullable=False, server_default="0"),
53 sa.Column("total_estimated", sa.Integer(), nullable=False, server_default="0"),
54 sa.Column(
55 "created_at",
56 sa.DateTime(timezone=True),
57 nullable=False,
58 server_default=sa.text("NOW()"),
59 ),
60 )
61 op.create_index(
62 "ix_musehub_ci_test_mappings_run_id",
63 "musehub_ci_test_mappings",
64 ["run_id"],
65 )
66 op.create_index(
67 "ix_musehub_ci_test_mappings_repo_id",
68 "musehub_ci_test_mappings",
69 ["repo_id"],
70 )
71
72
73 def downgrade() -> None:
74 op.drop_index("ix_musehub_ci_test_mappings_repo_id", table_name="musehub_ci_test_mappings")
75 op.drop_index("ix_musehub_ci_test_mappings_run_id", table_name="musehub_ci_test_mappings")
76 op.drop_table("musehub_ci_test_mappings")
77 op.drop_column("musehub_ci_runs", "gate_results", if_exists=True)
78 op.drop_column("musehub_repos", "ci_gate_config", if_exists=True)
File History 1 commit
sha256:a10adeeb7a0169cb9900f9806ed7a973047258abb6283724fe55e8eb68ff3f0a init: musehub initial commit Human 171 days ago