From e9d6e26e54bef5e6e58a05f9b61ad287fd4257f7 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Mon, 14 Sep 2026 15:06:54 +0800 Subject: [PATCH] =?UTF-8?q?feat(dmig):=20m0031=E7=B4=A2=E5=BC=95=E6=AC=A0?= =?UTF-8?q?=E8=B4=A6=E6=94=B6=E6=95=9B=E2=80=94=E2=80=94opp=5F*=E5=85=AD?= =?UTF-8?q?=E8=A1=A88=E7=B4=A2=E5=BC=95(=E6=9D=83=E5=A8=81=E6=BA=90p1=5Fcr?= =?UTF-8?q?eate=5Ftables.py=E4=B8=8D=E5=9C=A8=E9=83=A8=E7=BD=B2=E9=93=BE?= =?UTF-8?q?=E8=87=B4=E7=94=9F=E4=BA=A7=E6=BC=8F=E5=BB=BA)+sd=5Fbugs.task?= =?UTF-8?q?=5Fid;=E5=B9=82=E7=AD=89=E5=AE=88=E5=8D=AB=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=9C=BA=E5=85=A8skip;tk=5Ftickets=E6=AD=BB=E5=88=97=E7=B4=A2?= =?UTF-8?q?=E5=BC=95=E8=B1=81=E5=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../m0031_opp_sdbugs_index_catchup.json | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 deploy/migrations/m0031_opp_sdbugs_index_catchup.json diff --git a/deploy/migrations/m0031_opp_sdbugs_index_catchup.json b/deploy/migrations/m0031_opp_sdbugs_index_catchup.json new file mode 100644 index 0000000..0707cae --- /dev/null +++ b/deploy/migrations/m0031_opp_sdbugs_index_catchup.json @@ -0,0 +1,29 @@ +{ + "id": "m0031", + "title": "索引欠账收敛: opp_*六表8索引(权威定义=pipeline-opportunity/scripts/p1_create_tables.py, 该脚本不在部署链上致生产漏建)+sd_bugs.task_id索引(models已声明,生产建表时漏)。dmig幂等守卫按information_schema存在性跳过,测试机已有全部索引会全skip。tk_tickets_idx_tk_assignee生产为(assignee_id,status)是冻结基线正确版,测试机指向死列current_assignee属测试侧残留,豁免不动", + "backup_tables": [], + "up": [ + {"op": "sql", "sql": "CREATE INDEX idx_opp_snap_batch_src ON opp_demand_snap (batch_id, src_id)"}, + {"op": "sql", "sql": "CREATE INDEX idx_opp_snap_cluster ON opp_demand_snap (cluster_id)"}, + {"op": "sql", "sql": "CREATE INDEX idx_opp_clusters_batch ON opp_clusters (batch_id, org_id)"}, + {"op": "sql", "sql": "CREATE INDEX idx_opp_atoms_cluster ON opp_demand_atoms (cluster_id)"}, + {"op": "sql", "sql": "CREATE INDEX idx_opp_atoms_snap ON opp_demand_atoms (snap_id)"}, + {"op": "sql", "sql": "CREATE INDEX idx_opp_domains_cluster ON opp_demand_domains (cluster_id)"}, + {"op": "sql", "sql": "CREATE INDEX idx_opp_batches_org ON opp_mining_batches (org_id, status)"}, + {"op": "sql", "sql": "CREATE INDEX idx_opp_batches_orgproj ON opp_mining_batches (org_id, project_id)"}, + {"op": "sql", "sql": "CREATE INDEX idx_opp_std_cluster ON opp_std_demands (cluster_id, tier)"}, + {"op": "sql", "sql": "CREATE INDEX idx_task ON sd_bugs (task_id)"} + ], + "down": [ + {"op": "sql", "sql": "DROP INDEX idx_opp_snap_batch_src ON opp_demand_snap"}, + {"op": "sql", "sql": "DROP INDEX idx_opp_snap_cluster ON opp_demand_snap"}, + {"op": "sql", "sql": "DROP INDEX idx_opp_clusters_batch ON opp_clusters"}, + {"op": "sql", "sql": "DROP INDEX idx_opp_atoms_cluster ON opp_demand_atoms"}, + {"op": "sql", "sql": "DROP INDEX idx_opp_atoms_snap ON opp_demand_atoms"}, + {"op": "sql", "sql": "DROP INDEX idx_opp_domains_cluster ON opp_demand_domains"}, + {"op": "sql", "sql": "DROP INDEX idx_opp_batches_org ON opp_mining_batches"}, + {"op": "sql", "sql": "DROP INDEX idx_opp_batches_orgproj ON opp_mining_batches"}, + {"op": "sql", "sql": "DROP INDEX idx_opp_std_cluster ON opp_std_demands"}, + {"op": "sql", "sql": "DROP INDEX idx_task ON sd_bugs"} + ] +}