"""add ivfflat index for knowledge chunk embedding Revision ID: add_kb_chunk_ivfflat_index Revises: add_pg_trgm_text_indexes Create Date: 2026-03-11 """ from __future__ import annotations from alembic import op revision = "add_kb_chunk_ivfflat_index" down_revision = "add_pg_trgm_text_indexes" branch_labels = None depends_on = None def _is_postgresql() -> bool: bind = op.get_bind() return str(getattr(getattr(bind, "dialect", None), "name", "")).lower().startswith("postgres") def upgrade() -> None: if not _is_postgresql(): return op.execute( """ CREATE INDEX IF NOT EXISTS ix_knowledge_chunks_embedding_ivfflat ON knowledge_base_chunks USING ivfflat (embedding vector_cosine_ops) WITH (lists = 100) """ ) def downgrade() -> None: if not _is_postgresql(): return op.execute("DROP INDEX IF EXISTS ix_knowledge_chunks_embedding_ivfflat")