diff --git a/core/data/alembic/versions/202d1ada1b39_idac_rounds_event_info_added.py b/core/data/alembic/versions/202d1ada1b39_idac_rounds_event_info_added.py new file mode 100644 index 0000000..8079836 --- /dev/null +++ b/core/data/alembic/versions/202d1ada1b39_idac_rounds_event_info_added.py @@ -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") diff --git a/titles/idac/schema/rounds.py b/titles/idac/schema/rounds.py index a818f3c..35f3627 100644 --- a/titles/idac/schema/rounds.py +++ b/titles/idac/schema/rounds.py @@ -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),