"""add chat tables Revision ID: 0005 Revises: 0004 Create Date: 2025-01-01 00:00:00.000000 """ from alembic import op import sqlalchemy as sa revision = "0005" down_revision = "0004" branch_labels = None depends_on = None def upgrade() -> None: conn = op.get_bind() conn.execute(sa.text(""" CREATE TABLE IF NOT EXISTS conversations ( id SERIAL PRIMARY KEY, title TEXT NOT NULL DEFAULT '', model TEXT NOT NULL DEFAULT '', created_at TIMESTAMPTZ NOT NULL DEFAULT now(), updated_at TIMESTAMPTZ NOT NULL DEFAULT now() ) """)) conn.execute(sa.text(""" CREATE TABLE IF NOT EXISTS messages ( id SERIAL PRIMARY KEY, conversation_id INTEGER NOT NULL REFERENCES conversations(id) ON DELETE CASCADE, role TEXT NOT NULL, content TEXT NOT NULL DEFAULT '', context_note_id INTEGER REFERENCES notes(id) ON DELETE SET NULL, created_at TIMESTAMPTZ NOT NULL DEFAULT now() ) """)) conn.execute(sa.text( "CREATE INDEX IF NOT EXISTS ix_messages_conversation_id ON messages (conversation_id)" )) def downgrade() -> None: op.execute("DROP INDEX IF EXISTS ix_messages_conversation_id") op.execute("DROP TABLE IF EXISTS messages") op.execute("DROP TABLE IF EXISTS conversations")