99 lines
3.3 KiB
Python
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)
|