"""embeddings vector 512 -> 768 Revision ID: 0010_embeddings_768d Revises: 0009_users_and_auth Create Date: 2026-04-12 Resize embeddings.vector from Vector(512) to Vector(768) for SigLIP2 ViT-B/16 embeddings. Drops existing data and HNSW index, recreates with the new dimension. Existing embeddings will be regenerated by the vision backfill task. """ from typing import Sequence, Union from alembic import op revision: str = "0010_embeddings_768d" down_revision: Union[str, None] = "0009_users_and_auth" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: op.execute("DROP INDEX IF EXISTS ix_embeddings_vector_hnsw") op.execute("DELETE FROM embeddings") op.execute("ALTER TABLE embeddings ALTER COLUMN vector TYPE vector(768)") op.execute(""" CREATE INDEX IF NOT EXISTS ix_embeddings_vector_hnsw ON embeddings USING hnsw (vector vector_cosine_ops) """) def downgrade() -> None: op.execute("DROP INDEX IF EXISTS ix_embeddings_vector_hnsw") op.execute("DELETE FROM embeddings") op.execute("ALTER TABLE embeddings ALTER COLUMN vector TYPE vector(512)") op.execute(""" CREATE INDEX IF NOT EXISTS ix_embeddings_vector_hnsw ON embeddings USING hnsw (vector vector_cosine_ops) """)