"""add_citation_source_analysis_fields Revision ID: 8ccb553ff975 Revises: 059724556401 Create Date: 2026-05-23 17:23:03.183460 """ from typing import Sequence, Union from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. revision: str = '8ccb553ff975' down_revision: Union[str, Sequence[str], None] = '059724556401' branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: """Upgrade schema.""" # 数据来源类型标记 op.add_column( 'citation_records', sa.Column('data_source', sa.String(20), nullable=True, comment='数据来源类型: ai_platform / search_engine / unknown') ) # 提取的引用URL列表 op.add_column( 'citation_records', sa.Column('source_urls', sa.JSON(), nullable=True, comment='提取的引用URL列表') ) # 提取的引用来源标题列表 op.add_column( 'citation_records', sa.Column('source_titles', sa.JSON(), nullable=True, comment='提取的引用来源标题列表') ) # 引用出现的上下文片段列表 op.add_column( 'citation_records', sa.Column('citation_contexts', sa.JSON(), nullable=True, comment='引用出现的上下文片段列表') ) # AI回答原始文本 op.add_column( 'citation_records', sa.Column('ai_response_text', sa.Text(), nullable=True, comment='AI回答原始文本(去掉data_source标记后的纯文本)') ) def downgrade() -> None: """Downgrade schema.""" op.drop_column('citation_records', 'ai_response_text') op.drop_column('citation_records', 'citation_contexts') op.drop_column('citation_records', 'source_titles') op.drop_column('citation_records', 'source_urls') op.drop_column('citation_records', 'data_source')