From efcc394b0cd69be8a8a13ef75c57bcfded0a05c7 Mon Sep 17 00:00:00 2001 From: CREDO23 Date: Wed, 14 Jan 2026 18:24:28 +0200 Subject: [PATCH] migration: add author_id to messages --- .../versions/63_add_message_author_id.py | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 surfsense_backend/alembic/versions/63_add_message_author_id.py diff --git a/surfsense_backend/alembic/versions/63_add_message_author_id.py b/surfsense_backend/alembic/versions/63_add_message_author_id.py new file mode 100644 index 000000000..2fc3f0b4c --- /dev/null +++ b/surfsense_backend/alembic/versions/63_add_message_author_id.py @@ -0,0 +1,47 @@ +"""Add author_id column to new_chat_messages table + +Revision ID: 63 +Revises: 62 +""" + +from collections.abc import Sequence + +from alembic import op + +revision: str = "63" +down_revision: str | None = "62" +branch_labels: str | Sequence[str] | None = None +depends_on: str | Sequence[str] | None = None + + +def upgrade() -> None: + """Add author_id column to new_chat_messages table.""" + op.execute( + """ + DO $$ + BEGIN + IF NOT EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_name = 'new_chat_messages' AND column_name = 'author_id' + ) THEN + ALTER TABLE new_chat_messages + ADD COLUMN author_id UUID REFERENCES "user"(id) ON DELETE SET NULL; + + CREATE INDEX IF NOT EXISTS ix_new_chat_messages_author_id + ON new_chat_messages(author_id); + END IF; + END$$; + """ + ) + + +def downgrade() -> None: + """Remove author_id column from new_chat_messages table.""" + op.execute( + """ + DROP INDEX IF EXISTS ix_new_chat_messages_author_id; + ALTER TABLE new_chat_messages + DROP COLUMN IF EXISTS author_id; + """ + ) +