silly-event-rollup/alembic/versions/abfbb3d96037_create_user_event_table.py
2025-06-15 00:14:03 +02:00

49 lines
1.2 KiB
Python

"""create user event table
Revision ID: abfbb3d96037
Revises:
Create Date: 2025-06-14 22:22:48.407239
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
import sqlalchemy.dialects.postgresql as psql
# revision identifiers, used by Alembic.
revision: str = "abfbb3d96037"
down_revision: Union[str, None] = None
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
"""Upgrade schema."""
op.execute("CREATE EXTENSION IF NOT EXISTS pgcrypto;")
op.create_table(
"user_events",
sa.Column(
"id",
sa.UUID(as_uuid=True),
nullable=False,
server_default=sa.text("gen_random_uuid()"),
),
sa.Column("sequence", sa.Integer(), nullable=False, autoincrement=True),
sa.Column("event_payload", psql.JSONB, nullable=False),
sa.Column(
"created_at",
sa.DateTime(timezone=True),
nullable=False,
server_default=sa.text("NOW()"),
),
sa.PrimaryKeyConstraint("id", "sequence"),
)
def downgrade() -> None:
"""Downgrade schema."""
op.drop_table("user_events")