volsu-contests/backend/alembic/versions/002_add_timezone_to_datetime.py
2025-11-30 19:55:50 +03:00

99 lines
3.3 KiB
Python

"""add timezone to datetime columns
Revision ID: 002
Revises: 001
Create Date: 2025-11-30
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision: str = '002'
down_revision: Union[str, None] = '001'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
# Users table
op.alter_column('users', 'created_at',
type_=sa.DateTime(timezone=True),
existing_type=sa.DateTime(),
existing_nullable=False)
# Contests table
op.alter_column('contests', 'start_time',
type_=sa.DateTime(timezone=True),
existing_type=sa.DateTime(),
existing_nullable=False)
op.alter_column('contests', 'end_time',
type_=sa.DateTime(timezone=True),
existing_type=sa.DateTime(),
existing_nullable=False)
op.alter_column('contests', 'created_at',
type_=sa.DateTime(timezone=True),
existing_type=sa.DateTime(),
existing_nullable=False)
# Contest participants table
op.alter_column('contest_participants', 'joined_at',
type_=sa.DateTime(timezone=True),
existing_type=sa.DateTime(),
existing_nullable=False)
# Problems table
op.alter_column('problems', 'created_at',
type_=sa.DateTime(timezone=True),
existing_type=sa.DateTime(),
existing_nullable=False)
# Submissions table
op.alter_column('submissions', 'created_at',
type_=sa.DateTime(timezone=True),
existing_type=sa.DateTime(),
existing_nullable=False)
def downgrade() -> None:
# Submissions table
op.alter_column('submissions', 'created_at',
type_=sa.DateTime(),
existing_type=sa.DateTime(timezone=True),
existing_nullable=False)
# Problems table
op.alter_column('problems', 'created_at',
type_=sa.DateTime(),
existing_type=sa.DateTime(timezone=True),
existing_nullable=False)
# Contest participants table
op.alter_column('contest_participants', 'joined_at',
type_=sa.DateTime(),
existing_type=sa.DateTime(timezone=True),
existing_nullable=False)
# Contests table
op.alter_column('contests', 'created_at',
type_=sa.DateTime(),
existing_type=sa.DateTime(timezone=True),
existing_nullable=False)
op.alter_column('contests', 'end_time',
type_=sa.DateTime(),
existing_type=sa.DateTime(timezone=True),
existing_nullable=False)
op.alter_column('contests', 'start_time',
type_=sa.DateTime(),
existing_type=sa.DateTime(timezone=True),
existing_nullable=False)
# Users table
op.alter_column('users', 'created_at',
type_=sa.DateTime(),
existing_type=sa.DateTime(timezone=True),
existing_nullable=False)