fix(core): remove inline ALTER TABLE from postgres_search_repository

Runtime DDL causes deadlocks when two concurrent index jobs race to
ALTER TABLE search_vector_chunks simultaneously. The alembic migration
m6h7i8j9k0l1_add_vector_sync_fingerprints.py already handles these
schema changes — runtime code should never run ALTER TABLE.

Fixes #727

Co-authored-by: Paul Hernandez <phernandez@users.noreply.github.com>
Signed-off-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
This commit is contained in:
claude[bot]
2026-04-08 04:44:39 +00:00
parent 8c81d3ce17
commit 339bf6cc31
@@ -318,47 +318,6 @@ class PostgresSearchRepository(SearchRepositoryBase):
"""
)
)
await session.execute(
text(
"""
ALTER TABLE search_vector_chunks
ADD COLUMN IF NOT EXISTS entity_fingerprint TEXT
"""
)
)
await session.execute(
text(
"""
ALTER TABLE search_vector_chunks
ADD COLUMN IF NOT EXISTS embedding_model TEXT
"""
)
)
await session.execute(
text(
"""
UPDATE search_vector_chunks
SET entity_fingerprint = COALESCE(entity_fingerprint, ''),
embedding_model = COALESCE(embedding_model, '')
"""
)
)
await session.execute(
text(
"""
ALTER TABLE search_vector_chunks
ALTER COLUMN entity_fingerprint SET NOT NULL
"""
)
)
await session.execute(
text(
"""
ALTER TABLE search_vector_chunks
ALTER COLUMN embedding_model SET NOT NULL
"""
)
)
# --- Embeddings table (dimension-dependent, created at runtime) ---
# Trigger: provider dimensions may differ from what was previously deployed.