diff --git a/migrations/versions/b7d1f4a92c3e_add_experience_feedback.py b/migrations/versions/b7d1f4a92c3e_add_experience_feedback.py index 927a22a..36c9fd0 100644 --- a/migrations/versions/b7d1f4a92c3e_add_experience_feedback.py +++ b/migrations/versions/b7d1f4a92c3e_add_experience_feedback.py @@ -70,12 +70,12 @@ def upgrade() -> None: ['stp_file_id', 'scheme_axis', 'feedback_status'], unique=False, ) - # GIN 索引(PG only):fingerprint JSON 字段 jsonb_path_query 类查询 - if op.get_bind().dialect.name == 'postgresql': - op.execute( - "CREATE INDEX ix_experience_feedback_fingerprint_gin " - "ON experience_feedback USING GIN (fingerprint)" - ) + # 注意:此处原本计划给 fingerprint 建 GIN 索引("jsonb_path_query 类查询"), + # 但该列是 sa.JSON() → PG 的 json 类型,而 GIN 只支持 jsonb(json 无默认 + # 操作符类,CREATE INDEX 直接报 UndefinedObject)。且代码侧并无 JSON 包含 + # 查询——聚合过滤在 Python 侧进行,DB 侧走上方 (stp_file_id, scheme_axis, + # feedback_status) 复合索引。故不建此索引;未来若真需要 JSON 检索,应先把 + # 列迁为 jsonb 再建 GIN。首次对生产库执行时曾因此报错回滚(2026-09-26)。 def downgrade() -> None: