idac: database upgrade script

This commit is contained in:
UncleJim 2024-05-03 16:33:15 +08:00
parent a245f3add4
commit 60fbbbddf6
2 changed files with 74 additions and 1 deletions

View File

@ -0,0 +1,72 @@
"""idac rounds event info added
Revision ID: 202d1ada1b39
Revises: e4e8d89c9b02
Create Date: 2024-05-03 15:51:02.384863
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import mysql
# revision identifiers, used by Alembic.
revision = '202d1ada1b39'
down_revision = 'e4e8d89c9b02'
branch_labels = None
depends_on = None
def upgrade():
op.create_table(
"idac_round_info",
sa.Column("id", sa.Integer(), nullable=False),
sa.Column("round_id_in_json", sa.Integer(), nullable=True),
sa.Column("name", String(64), nullable=True),
sa.Column("season", sa.Integer(), nullable=True),
sa.Column(
"start_dt",
sa.TIMESTAMP(),
server_default=sa.text("now()"),
nullable=True,
),
sa.Column(
"end_dt",
sa.TIMESTAMP(),
server_default=sa.text("now()"),
nullable=True,
),
sa.PrimaryKeyConstraint("id"),
mysql_charset="utf8mb4",
)
op.create_table(
"idac_user_round_info",
sa.Column("id", sa.Integer(), nullable=False),
sa.Column("user", sa.Integer(), nullable=False),
sa.Column("round_id", sa.Integer(), nullable=True),
sa.Column("count", sa.Integer(), nullable=True),
sa.Column("win", sa.Integer(), nullable=True),
sa.Column("point", sa.Integer(), nullable=True),
sa.Column(
"play_dt",
sa.TIMESTAMP(),
server_default=sa.text("now()"),
nullable=True,
),
sa.ForeignKeyConstraint(
["user"], ["aime_user.id"], onupdate="cascade", ondelete="cascade"
),
sa.ForeignKeyConstraint(
["round_id"], ["idac_round_info.id"], onupdate="cascade", ondelete="cascade"
),
sa.PrimaryKeyConstraint("id"),
sa.UniqueConstraint(
"user", "round_id", name="idac_user_round_info_uk"
),
mysql_charset="utf8mb4",
)
def downgrade():
op.drop_table("idac_round_info")
op.drop_table("idac_user_round_info")

View File

@ -14,6 +14,7 @@ round_details = Table(
"idac_round_info",
metadata,
Column("id", Integer, primary_key=True, nullable=False),
Column("round_id_in_json", Integer),
Column("name", String(64)),
Column("season", Integer),
Column("start_dt", TIMESTAMP, server_default=func.now()),
@ -26,7 +27,7 @@ round_info = Table(
metadata,
Column("id", Integer, primary_key=True, nullable=False),
Column("user", ForeignKey("aime_user.id", ondelete="cascade", onupdate="cascade")),
Column("round_id", Integer),
Column("round_id", ForeignKey("idac_round_info.id", ondelete="cascade", onupdate="cascade")),
Column("count", Integer),
Column("win", Integer),
Column("point", Integer),