"""Phase D: AI coaching engine (JSONB fields only, pgvector table deferred) Revision ID: a7b8c9d0e1f2 Revises: f6a7b8c9d0e1 Create Date: 2026-03-27 Note: kb_obsidian_vectors (pgvector) 表需要先安装 postgresql-16-pgvector 包, 安装后手动执行: CREATE EXTENSION IF NOT EXISTS vector; 然后运行: alembic upgrade pgvector_head """ from alembic import op import sqlalchemy as sa from sqlalchemy.dialects.postgresql import UUID, JSONB revision = "a7b8c9d0e1f2" down_revision = "f6a7b8c9d0e1" branch_labels = None depends_on = None def upgrade() -> None: # ── 1. sales_logs 新增 ai_coaching_feedback ── op.add_column( "sales_logs", sa.Column("ai_coaching_feedback", JSONB, nullable=True, comment="AI 教练引擎回写的指导反馈"), ) # ── 2. crm_customers 新增 health_score / meddic_status ── op.add_column( "crm_customers", sa.Column("health_score", sa.Numeric(5, 2), server_default="0", comment="客户健康度评分 (AI 教练引擎计算)"), ) op.add_column( "crm_customers", sa.Column("meddic_status", JSONB, nullable=True, comment="MEDDIC 六维评估状态"), ) # ── 3. kb_obsidian_vectors 表暂不在此迁移创建 ── # 需先安装 pgvector 扩展,见单独迁移脚本 def downgrade() -> None: op.drop_column("crm_customers", "meddic_status") op.drop_column("crm_customers", "health_score") op.drop_column("sales_logs", "ai_coaching_feedback")