From 297abf4e545e8c0950169700515318ea5928d72b Mon Sep 17 00:00:00 2001 From: Dniel97 Date: Fri, 10 Jul 2026 21:01:32 +0200 Subject: [PATCH] change campaign table definition from TEXT to String --- .../versions/1b78db5898f4_add_campaigns.py | 71 +++++++++++-------- core/data/schema/base.py | 4 +- 2 files changed, 42 insertions(+), 33 deletions(-) diff --git a/core/data/alembic/versions/1b78db5898f4_add_campaigns.py b/core/data/alembic/versions/1b78db5898f4_add_campaigns.py index 847cd68..1435384 100644 --- a/core/data/alembic/versions/1b78db5898f4_add_campaigns.py +++ b/core/data/alembic/versions/1b78db5898f4_add_campaigns.py @@ -18,39 +18,48 @@ depends_on = None def upgrade(): # ### commands auto generated by Alembic - please adjust! ### - op.create_table('campaign', - sa.Column('id', sa.INTEGER(), nullable=False), - sa.Column('name', sa.TEXT(length=127), nullable=False), - sa.Column('announce_date', sa.TIMESTAMP(), nullable=True), - sa.Column('start_date', sa.TIMESTAMP(), nullable=True), - sa.Column('end_date', sa.TIMESTAMP(), nullable=True), - sa.Column('distrib_start_date', sa.TIMESTAMP(), nullable=True), - sa.Column('distrib_end_date', sa.TIMESTAMP(), nullable=True), - sa.Column('info0', sa.INTEGER(), nullable=True), - sa.Column('info1', sa.INTEGER(), nullable=True), - sa.Column('info2', sa.INTEGER(), nullable=True), - sa.Column('info3', sa.INTEGER(), nullable=True), - sa.PrimaryKeyConstraint('id'), - mysql_charset='utf8mb4' + op.create_table( + 'campaign', + sa.Column('id', sa.INTEGER(), nullable=False), + sa.Column('name', sa.String(127), nullable=False), + sa.Column('announce_date', sa.TIMESTAMP(), nullable=True), + sa.Column('start_date', sa.TIMESTAMP(), nullable=True), + sa.Column('end_date', sa.TIMESTAMP(), nullable=True), + sa.Column('distrib_start_date', sa.TIMESTAMP(), nullable=True), + sa.Column('distrib_end_date', sa.TIMESTAMP(), nullable=True), + sa.Column('info0', sa.INTEGER(), nullable=True), + sa.Column('info1', sa.INTEGER(), nullable=True), + sa.Column('info2', sa.INTEGER(), nullable=True), + sa.Column('info3', sa.INTEGER(), nullable=True), + sa.PrimaryKeyConstraint('id'), + mysql_charset='utf8mb4', ) - op.create_table('campaign_game', - sa.Column('campaign_id', sa.INTEGER(), nullable=False), - sa.Column('game_id', sa.TEXT(length=5), nullable=False), - sa.ForeignKeyConstraint(['campaign_id'], ['campaign.id'], onupdate='cascade', ondelete='cascade'), - sa.UniqueConstraint('campaign_id', 'game_id', name='campaign_game_uk'), - mysql_charset='utf8mb4' + op.create_table( + 'campaign_game', + sa.Column('campaign_id', sa.INTEGER(), nullable=False), + sa.Column('game_id', sa.String(5), nullable=False), + sa.ForeignKeyConstraint( + ['campaign_id'], ['campaign.id'], onupdate='cascade', ondelete='cascade' + ), + sa.UniqueConstraint('campaign_id', 'game_id', name='campaign_game_uk'), + mysql_charset='utf8mb4', ) - op.create_table('campaign_progress', - sa.Column('id', sa.BIGINT(), autoincrement=True, nullable=False), - sa.Column('user_id', sa.Integer(), nullable=False), - sa.Column('campaign_id', sa.INTEGER(), nullable=False), - sa.Column('is_participating', sa.INTEGER(), server_default='0', nullable=False), - sa.Column('progress', sa.INTEGER(), server_default='0', nullable=False), - sa.ForeignKeyConstraint(['campaign_id'], ['campaign.id'], onupdate='cascade', ondelete='cascade'), - sa.ForeignKeyConstraint(['user_id'], ['aime_user.id'], onupdate='cascade', ondelete='cascade'), - sa.PrimaryKeyConstraint('id'), - sa.UniqueConstraint('campaign_id', 'user_id', name='campaign_progress_uk'), - mysql_charset='utf8mb4' + op.create_table( + 'campaign_progress', + sa.Column('id', sa.BIGINT(), autoincrement=True, nullable=False), + sa.Column('user_id', sa.Integer(), nullable=False), + sa.Column('campaign_id', sa.INTEGER(), nullable=False), + sa.Column('is_participating', sa.INTEGER(), server_default='0', nullable=False), + sa.Column('progress', sa.INTEGER(), server_default='0', nullable=False), + sa.ForeignKeyConstraint( + ['campaign_id'], ['campaign.id'], onupdate='cascade', ondelete='cascade' + ), + sa.ForeignKeyConstraint( + ['user_id'], ['aime_user.id'], onupdate='cascade', ondelete='cascade' + ), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('campaign_id', 'user_id', name='campaign_progress_uk'), + mysql_charset='utf8mb4', ) # ### end Alembic commands ### diff --git a/core/data/schema/base.py b/core/data/schema/base.py index 7934cd0..d8be455 100644 --- a/core/data/schema/base.py +++ b/core/data/schema/base.py @@ -43,7 +43,7 @@ campaign: Table = Table( "campaign", metadata, Column("id", INTEGER, primary_key=True, nullable=False), - Column("name", TEXT(127), nullable=False), + Column("name", String(127), nullable=False), Column("announce_date", TIMESTAMP), # None = start announcing now Column("start_date", TIMESTAMP), # None = start now Column("end_date", TIMESTAMP), # None = never end @@ -62,7 +62,7 @@ campaign_game: Table = Table( "campaign_game", metadata, Column("campaign_id", INTEGER, ForeignKey("campaign.id", ondelete="cascade", onupdate="cascade"), nullable=False), - Column("game_id", TEXT(5), nullable=False), + Column("game_id", String(5), nullable=False), UniqueConstraint("campaign_id", "game_id", name="campaign_game_uk"), mysql_charset="utf8mb4", )