"""add extracted JSONB column to messages Revision ID: 0004 Revises: 0003 Create Date: 2026-05-05 """ from typing import Sequence, Union import sqlalchemy as sa from alembic import op from sqlalchemy.dialects import postgresql revision: str = "0004" down_revision: Union[str, None] = "0003" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: op.add_column( "messages", sa.Column("extracted", postgresql.JSONB(), nullable=True), ) # GIN index for json queries (e.g. filter by extracted->'real_estate'->>'kind'). op.execute( "CREATE INDEX IF NOT EXISTS ix_messages_extracted_gin " "ON messages USING GIN (extracted)" ) def downgrade() -> None: op.execute("DROP INDEX IF EXISTS ix_messages_extracted_gin") op.drop_column("messages", "extracted")