feat: migrate to taskiq

This commit is contained in:
2025-09-24 19:02:45 -06:00
parent b7f8e8ef8d
commit d86dc59bf2
35 changed files with 1210 additions and 667 deletions

View File

@@ -23,14 +23,16 @@ def upgrade() -> None:
op.drop_column("transcript", "search_vector_en")
# Recreate the search vector column with long_summary included
op.execute("""
op.execute(
"""
ALTER TABLE transcript ADD COLUMN search_vector_en tsvector
GENERATED ALWAYS AS (
setweight(to_tsvector('english', coalesce(title, '')), 'A') ||
setweight(to_tsvector('english', coalesce(long_summary, '')), 'B') ||
setweight(to_tsvector('english', coalesce(webvtt, '')), 'C')
) STORED
""")
"""
)
# Recreate the GIN index for the search vector
op.create_index(
@@ -47,13 +49,15 @@ def downgrade() -> None:
op.drop_column("transcript", "search_vector_en")
# Recreate the original search vector column without long_summary
op.execute("""
op.execute(
"""
ALTER TABLE transcript ADD COLUMN search_vector_en tsvector
GENERATED ALWAYS AS (
setweight(to_tsvector('english', coalesce(title, '')), 'A') ||
setweight(to_tsvector('english', coalesce(webvtt, '')), 'B')
) STORED
""")
"""
)
# Recreate the GIN index for the search vector
op.create_index(

View File

@@ -21,13 +21,15 @@ def upgrade() -> None:
if conn.dialect.name != "postgresql":
return
op.execute("""
op.execute(
"""
ALTER TABLE transcript ADD COLUMN search_vector_en tsvector
GENERATED ALWAYS AS (
setweight(to_tsvector('english', coalesce(title, '')), 'A') ||
setweight(to_tsvector('english', coalesce(webvtt, '')), 'B')
) STORED
""")
"""
)
op.create_index(
"idx_transcript_search_vector_en",

View File

@@ -19,12 +19,14 @@ depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
# Set room_id to NULL for meetings that reference non-existent rooms
op.execute("""
op.execute(
"""
UPDATE meeting
SET room_id = NULL
WHERE room_id IS NOT NULL
AND room_id NOT IN (SELECT id FROM room WHERE id IS NOT NULL)
""")
"""
)
def downgrade() -> None:

View File

@@ -27,7 +27,8 @@ def upgrade() -> None:
# Populate room_id for existing ROOM-type transcripts
# This joins through recording -> meeting -> room to get the room_id
op.execute("""
op.execute(
"""
UPDATE transcript AS t
SET room_id = r.id
FROM recording rec
@@ -36,11 +37,13 @@ def upgrade() -> None:
WHERE t.recording_id = rec.id
AND t.source_kind = 'room'
AND t.room_id IS NULL
""")
"""
)
# Fix missing meeting_id for ROOM-type transcripts
# The meeting_id field exists but was never populated
op.execute("""
op.execute(
"""
UPDATE transcript AS t
SET meeting_id = rec.meeting_id
FROM recording rec
@@ -48,7 +51,8 @@ def upgrade() -> None:
AND t.source_kind = 'room'
AND t.meeting_id IS NULL
AND rec.meeting_id IS NOT NULL
""")
"""
)
def downgrade() -> None: