diff --git a/backend/alembic/versions/0014_asset_files.py b/backend/alembic/versions/0014_asset_files.py index 1563256e7..c4f2bfd5a 100644 --- a/backend/alembic/versions/0014_asset_files.py +++ b/backend/alembic/versions/0014_asset_files.py @@ -2,18 +2,17 @@ Revision ID: 0014_asset_files Revises: 0013_upgrade_file_extension -Create Date: 2024-01-07 09:45:09.632571 +Create Date: 2024-02-08 15:03:26.338964 """ - import os - -import sqlalchemy as sa from alembic import op +import sqlalchemy as sa +from sqlalchemy import create_engine, text +from sqlalchemy.dialects import mysql +from sqlalchemy.orm import sessionmaker from config import ROMM_DB_DRIVER from config.config_manager import SQLITE_DB_BASE_PATH, ConfigManager -from sqlalchemy import create_engine, text -from sqlalchemy.orm import sessionmaker # revision identifiers, used by Alembic. revision = "0014_asset_files" @@ -21,6 +20,15 @@ down_revision = "0013_upgrade_file_extension" branch_labels = None depends_on = None +SIZE_UNIT_TO_BYTES = { + "B": 1, + "KB": 1024, + "MB": 1024**2, + "GB": 1024**3, + "TB": 1024**4, + "PB": 1024**5, +} + def migrate_to_mysql() -> None: if ROMM_DB_DRIVER != "mariadb": @@ -80,15 +88,11 @@ def migrate_to_mysql() -> None: def upgrade() -> None: - migrate_to_mysql() - ### commands auto generated by Alembic - please adjust! ### op.create_table( "saves", sa.Column("emulator", sa.String(length=50), nullable=True), - sa.Column("rom_id", sa.Integer(), nullable=False), - sa.Column("platform_slug", sa.String(length=50), nullable=False), sa.Column("id", sa.Integer(), autoincrement=True, nullable=False), sa.Column( "created_at", sa.DateTime(), server_default=sa.text("now()"), nullable=False @@ -98,19 +102,18 @@ def upgrade() -> None: ), sa.Column("file_name", sa.String(length=450), nullable=False), sa.Column("file_name_no_tags", sa.String(length=450), nullable=False), - sa.Column("file_extension", sa.String(length=10), nullable=False), + sa.Column("file_name_no_ext", sa.String(length=450), nullable=False), + sa.Column("file_extension", sa.String(length=100), nullable=False), sa.Column("file_path", sa.String(length=1000), nullable=False), - sa.Column("file_size_bytes", sa.Integer(), nullable=False), - sa.ForeignKeyConstraint( - ["platform_slug"], ["platforms.slug"], ondelete="CASCADE" - ), + sa.Column("file_size_bytes", sa.BigInteger(), nullable=False), + sa.Column("rom_id", sa.Integer(), nullable=False), + sa.Column("user_id", sa.Integer(), nullable=False), sa.ForeignKeyConstraint(["rom_id"], ["roms.id"], ondelete="CASCADE"), + sa.ForeignKeyConstraint(["user_id"], ["users.id"], ondelete="CASCADE"), sa.PrimaryKeyConstraint("id"), ) op.create_table( "screenshots", - sa.Column("rom_id", sa.Integer(), nullable=False), - sa.Column("platform_slug", sa.String(length=50), nullable=True), sa.Column("id", sa.Integer(), autoincrement=True, nullable=False), sa.Column( "created_at", sa.DateTime(), server_default=sa.text("now()"), nullable=False @@ -120,20 +123,19 @@ def upgrade() -> None: ), sa.Column("file_name", sa.String(length=450), nullable=False), sa.Column("file_name_no_tags", sa.String(length=450), nullable=False), - sa.Column("file_extension", sa.String(length=10), nullable=False), + sa.Column("file_name_no_ext", sa.String(length=450), nullable=False), + sa.Column("file_extension", sa.String(length=100), nullable=False), sa.Column("file_path", sa.String(length=1000), nullable=False), - sa.Column("file_size_bytes", sa.Integer(), nullable=False), - sa.ForeignKeyConstraint( - ["platform_slug"], ["platforms.slug"], ondelete="CASCADE" - ), + sa.Column("file_size_bytes", sa.BigInteger(), nullable=False), + sa.Column("rom_id", sa.Integer(), nullable=False), + sa.Column("user_id", sa.Integer(), nullable=False), sa.ForeignKeyConstraint(["rom_id"], ["roms.id"], ondelete="CASCADE"), + sa.ForeignKeyConstraint(["user_id"], ["users.id"], ondelete="CASCADE"), sa.PrimaryKeyConstraint("id"), ) op.create_table( "states", sa.Column("emulator", sa.String(length=50), nullable=True), - sa.Column("rom_id", sa.Integer(), nullable=False), - sa.Column("platform_slug", sa.String(length=50), nullable=False), sa.Column("id", sa.Integer(), autoincrement=True, nullable=False), sa.Column( "created_at", sa.DateTime(), server_default=sa.text("now()"), nullable=False @@ -143,21 +145,132 @@ def upgrade() -> None: ), sa.Column("file_name", sa.String(length=450), nullable=False), sa.Column("file_name_no_tags", sa.String(length=450), nullable=False), - sa.Column("file_extension", sa.String(length=10), nullable=False), + sa.Column("file_name_no_ext", sa.String(length=450), nullable=False), + sa.Column("file_extension", sa.String(length=100), nullable=False), sa.Column("file_path", sa.String(length=1000), nullable=False), - sa.Column("file_size_bytes", sa.Integer(), nullable=False), - sa.ForeignKeyConstraint( - ["platform_slug"], ["platforms.slug"], ondelete="CASCADE" - ), + sa.Column("file_size_bytes", sa.BigInteger(), nullable=False), + sa.Column("rom_id", sa.Integer(), nullable=False), + sa.Column("user_id", sa.Integer(), nullable=False), sa.ForeignKeyConstraint(["rom_id"], ["roms.id"], ondelete="CASCADE"), + sa.ForeignKeyConstraint(["user_id"], ["users.id"], ondelete="CASCADE"), sa.PrimaryKeyConstraint("id"), ) - ### end Alembic commands ### + with op.batch_alter_table("platforms", schema=None) as batch_op: + batch_op.execute( + "ALTER TABLE platforms ADD COLUMN id INTEGER(11) NOT NULL AUTO_INCREMENT PRIMARY KEY" + ) + batch_op.drop_column("n_roms") + + with op.batch_alter_table("roms", schema=None) as batch_op: + batch_op.add_column( + sa.Column("file_name_no_ext", sa.String(length=450), nullable=False) + ) + batch_op.add_column( + sa.Column("file_size_bytes", sa.BigInteger(), nullable=False) + ) + batch_op.add_column(sa.Column("igdb_metadata", mysql.JSON(), nullable=True)) + batch_op.add_column(sa.Column("platform_id", sa.Integer(), nullable=False)) + batch_op.drop_constraint("fk_platform_roms", type_="foreignkey") + batch_op.execute( + "update roms inner join platforms on roms.platform_slug = platforms.slug set roms.platform_id = platforms.id" + ) + batch_op.create_foreign_key( + None, "platforms", ["platform_id"], ["id"], ondelete="CASCADE" + ) + + # Set file_name_no_ext on existing roms + op.execute( + "UPDATE roms SET file_name_no_ext = regexp_replace(file_name, '\\.[a-z]{2,}$', '')" + ) + + # Process filesize data and prepare for bulk update + connection = op.get_bind() + result = connection.execute(text("SELECT id, file_size, file_size_units FROM roms")) + updates = [] + for row in result: + file_size_bytes = int(row[1] * SIZE_UNIT_TO_BYTES.get(row[2], 1)) + updates.append({"id": row[0], "file_size_bytes": file_size_bytes}) + + if updates: + # Perform bulk update + connection.execute( + text("UPDATE roms SET file_size_bytes = :file_size_bytes WHERE id = :id"), + updates, + ) + + # Cleanup roms table + with op.batch_alter_table("roms", schema=None) as batch_op: + batch_op.drop_column("file_size") + batch_op.drop_column("file_size_units") + batch_op.drop_column("p_sgdb_id") + batch_op.drop_column("p_name") + batch_op.drop_column("p_igdb_id") + batch_op.drop_column("platform_slug") def downgrade() -> None: - # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table("roms", schema=None) as batch_op: + batch_op.add_column( + sa.Column("platform_slug", mysql.VARCHAR(length=50), nullable=False) + ) + batch_op.add_column( + sa.Column("p_igdb_id", mysql.VARCHAR(length=10), nullable=True) + ) + batch_op.add_column( + sa.Column("p_name", mysql.VARCHAR(length=150), nullable=True) + ) + batch_op.add_column( + sa.Column("p_sgdb_id", mysql.VARCHAR(length=10), nullable=True) + ) + batch_op.add_column( + sa.Column("file_size_units", mysql.VARCHAR(length=10), nullable=False) + ) + batch_op.add_column(sa.Column("file_size", mysql.FLOAT(), nullable=False)) + batch_op.drop_constraint(None, type_="foreignkey") + batch_op.create_foreign_key( + "fk_platform_roms", "platforms", ["platform_slug"], ["slug"] + ) + + op.execute( + "update roms inner join platforms on roms.platform_id = platforms.id set roms.platform_slug = platforms.slug" + ) + + # Process filesize data and prepare for bulk update + connection = op.get_bind() + result = connection.execute(text("SELECT id, file_size_bytes FROM roms")) + + updates = [] + for row in result: + file_size = row[1] / SIZE_UNIT_TO_BYTES["MB"] + updates.append({"id": row[0], "file_size": file_size, "file_size_units": "MB"}) + + if updates: + # Perform bulk update + connection.execute( + text( + "UPDATE roms SET file_size = :file_size, file_size_units = :file_size_units WHERE id = :id" + ), + updates, + ) + + # Cleanup roms table + with op.batch_alter_table("roms", schema=None) as batch_op: + batch_op.drop_column("platform_id") + batch_op.drop_column("igdb_metadata") + batch_op.drop_column("file_size_bytes") + batch_op.drop_column("file_name_no_ext") + + with op.batch_alter_table("platforms", schema=None) as batch_op: + batch_op.add_column( + sa.Column( + "n_roms", + mysql.INTEGER(display_width=11), + autoincrement=False, + nullable=True, + ) + ) + batch_op.drop_column("id") + op.drop_table("states") op.drop_table("screenshots") op.drop_table("saves") - # ### end Alembic commands ### diff --git a/backend/alembic/versions/0015_platform_id_refactor.py b/backend/alembic/versions/0015_platform_id_refactor.py deleted file mode 100644 index 00a2c1003..000000000 --- a/backend/alembic/versions/0015_platform_id_refactor.py +++ /dev/null @@ -1,180 +0,0 @@ -"""empty message - -Revision ID: 0015_platform_id_refactor -Revises: 0014_asset_files -Create Date: 2024-01-12 02:08:14.962703 - -""" -import sqlalchemy as sa -from alembic import op -from sqlalchemy.dialects import mysql -from sqlalchemy.sql import text - -# revision identifiers, used by Alembic. -revision = "0015_platform_id_refactor" -down_revision = "0014_asset_files" -branch_labels = None -depends_on = None - -SIZE_UNIT_TO_BYTES = { - "B": 1, - "KB": 1024, - "MB": 1024**2, - "GB": 1024**3, - "TB": 1024**4, - "PB": 1024**5, -} - - -def upgrade() -> None: - # Drop platform_slug foreign key on all tables - with op.batch_alter_table("states", schema=None) as batch_op: - batch_op.drop_constraint("states_ibfk_1", type_="foreignkey") - batch_op.drop_column("platform_slug") - - with op.batch_alter_table("screenshots", schema=None) as batch_op: - batch_op.drop_constraint("screenshots_ibfk_1", type_="foreignkey") - batch_op.drop_column("platform_slug") - - with op.batch_alter_table("saves", schema=None) as batch_op: - batch_op.drop_constraint("saves_ibfk_1", type_="foreignkey") - batch_op.drop_column("platform_slug") - - with op.batch_alter_table("roms", schema=None) as batch_op: - batch_op.drop_constraint("fk_platform_roms", type_="foreignkey") - - # Change platforms primary key - with op.batch_alter_table("platforms", schema=None) as batch_op: - batch_op.drop_constraint(constraint_name="PRIMARY", type_="primary") - batch_op.drop_column("n_roms") - - with op.batch_alter_table("platforms", schema=None) as batch_op: - batch_op.execute( - "ALTER TABLE platforms ADD COLUMN id INTEGER(11) NOT NULL AUTO_INCREMENT PRIMARY KEY" - ) - - # Create platform id foreign key - with op.batch_alter_table("roms", schema=None) as batch_op: - batch_op.drop_column("p_sgdb_id") - batch_op.drop_column("p_igdb_id") - batch_op.drop_column("p_name") - batch_op.add_column(sa.Column("file_size_bytes", sa.Integer(), nullable=False)) - batch_op.add_column( - sa.Column( - "platform_id", - mysql.INTEGER(display_width=11), - autoincrement=False, - nullable=False, - ) - ) - - with op.batch_alter_table("roms", schema=None) as batch_op: - batch_op.execute( - "update roms inner join platforms on roms.platform_slug = platforms.slug set roms.platform_id = platforms.id" - ) - - with op.batch_alter_table("roms", schema=None) as batch_op: - batch_op.create_foreign_key( - "roms_platforms_FK", "platforms", ["platform_id"], ["id"] - ) - batch_op.drop_column("platform_slug") - - connection = op.get_bind() - result = connection.execute(text("SELECT id, file_size, file_size_units FROM roms")) - - # Process the data and prepare for bulk update - updates = [] - for row in result: - file_size_bytes = int(row[1] * SIZE_UNIT_TO_BYTES.get(row[2], 1)) - updates.append({"id": row[0], "file_size_bytes": file_size_bytes}) - - if updates: - # Perform bulk update - connection.execute( - text("UPDATE roms SET file_size_bytes = :file_size_bytes WHERE id = :id"), - updates, - ) - - # Clean roms table - with op.batch_alter_table("roms", schema=None) as batch_op: - batch_op.drop_column("file_size") - batch_op.drop_column("file_size_units") - - -def downgrade() -> None: - with op.batch_alter_table("roms", schema=None) as batch_op: - batch_op.add_column( - sa.Column("platform_slug", sa.String(length=50), nullable=False) - ) - batch_op.add_column(sa.Column("p_name", sa.String(length=150), nullable=True)) - batch_op.add_column(sa.Column("p_igdb_id", sa.String(length=10), nullable=True)) - batch_op.add_column(sa.Column("p_sgdb_id", sa.String(length=10), nullable=True)) - batch_op.drop_constraint("roms_platforms_FK", type_="foreignkey") - batch_op.drop_column("file_size_bytes") - batch_op.add_column( - sa.Column("file_size_units", sa.String(length=10), nullable=False) - ) - batch_op.add_column(sa.Column("file_size", sa.Float(), nullable=False)) - - op.execute( - "update roms inner join platforms on roms.platform_id = platforms.id set roms.platform_slug = platforms.slug" - ) - - with op.batch_alter_table("saves", schema=None) as batch_op: - batch_op.add_column( - sa.Column("platform_slug", sa.String(length=50), nullable=False) - ) - - op.execute( - "update saves inner join roms on saves.rom_id = roms.id set saves.platform_slug = roms.platform_slug" - ) - - with op.batch_alter_table("screenshots", schema=None) as batch_op: - batch_op.add_column( - sa.Column("platform_slug", sa.String(length=50), nullable=True) - ) - - op.execute( - "update screenshots inner join roms on screenshots.rom_id = roms.id set screenshots.platform_slug = roms.platform_slug" - ) - - with op.batch_alter_table("states", schema=None) as batch_op: - batch_op.add_column( - sa.Column("platform_slug", sa.String(length=50), nullable=False) - ) - - op.execute( - "update states inner join roms on states.rom_id = roms.id set states.platform_slug = roms.platform_slug" - ) - - with op.batch_alter_table("platforms", schema=None) as batch_op: - batch_op.drop_column("id") - batch_op.create_primary_key(constraint_name=None, columns=["slug"]) - batch_op.add_column( - sa.Column("n_roms", sa.Integer(), autoincrement=False, nullable=True) - ) - - with op.batch_alter_table("saves", schema=None) as batch_op: - batch_op.create_foreign_key( - "saves_ibfk_1", "platforms", ["platform_slug"], ["slug"], ondelete="CASCADE" - ) - - with op.batch_alter_table("screenshots", schema=None) as batch_op: - batch_op.create_foreign_key( - "screenshots_ibfk_1", - "platforms", - ["platform_slug"], - ["slug"], - ondelete="CASCADE", - ) - - with op.batch_alter_table("states", schema=None) as batch_op: - batch_op.create_foreign_key( - "states_ibfk_1", "platforms", ["platform_slug"], ["slug"], ondelete="CASCADE" - ) - - with op.batch_alter_table("roms", schema=None) as batch_op: - batch_op.create_foreign_key( - "fk_platform_roms", "platforms", ["platform_slug"], ["slug"], ondelete="CASCADE" - ) - batch_op.drop_column("platform_id") diff --git a/backend/alembic/versions/0016_file_size_bytes_bigint.py b/backend/alembic/versions/0016_file_size_bytes_bigint.py deleted file mode 100644 index ebeae7b61..000000000 --- a/backend/alembic/versions/0016_file_size_bytes_bigint.py +++ /dev/null @@ -1,38 +0,0 @@ -"""empty message - -Revision ID: 0016_file_size_bytes_bigint -Revises: 0015_platform_id_refactor -Create Date: 2024-01-18 16:53:14.108703 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -# revision identifiers, used by Alembic. -revision = '0016_file_size_bytes_bigint' -down_revision = '0015_platform_id_refactor' -branch_labels = None -depends_on = None - - -def upgrade() -> None: - # ### commands auto generated by Alembic - please adjust! ### - with op.batch_alter_table('roms', schema=None) as batch_op: - batch_op.alter_column('file_size_bytes', - existing_type=mysql.INTEGER(display_width=11), - type_=sa.BigInteger(), - existing_nullable=False) - - # ### end Alembic commands ### - - -def downgrade() -> None: - # ### commands auto generated by Alembic - please adjust! ### - with op.batch_alter_table('roms', schema=None) as batch_op: - batch_op.alter_column('file_size_bytes', - existing_type=sa.BigInteger(), - type_=mysql.INTEGER(display_width=11), - existing_nullable=False) - - # ### end Alembic commands ### diff --git a/backend/alembic/versions/0017_file_name_no_ext.py b/backend/alembic/versions/0017_file_name_no_ext.py deleted file mode 100644 index af0f4f4c7..000000000 --- a/backend/alembic/versions/0017_file_name_no_ext.py +++ /dev/null @@ -1,52 +0,0 @@ -"""empty message - -Revision ID: 0017_file_name_no_ext -Revises: 0016_file_size_bytes_bigint -Create Date: 2024-01-20 13:54:32.458301 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '0017_file_name_no_ext' -down_revision = '0016_file_size_bytes_bigint' -branch_labels = None -depends_on = None - - -def upgrade() -> None: - with op.batch_alter_table('roms', schema=None) as batch_op: - batch_op.add_column(sa.Column('file_name_no_ext', sa.String(length=450), nullable=False)) - - op.execute("UPDATE roms SET file_name_no_ext = regexp_replace(file_name, '\\.[a-z]{2,}$', '')") - - with op.batch_alter_table('saves', schema=None) as batch_op: - batch_op.add_column(sa.Column('file_name_no_ext', sa.String(length=450), nullable=False)) - - op.execute("UPDATE saves SET file_name_no_ext = regexp_replace(file_name, '\\.[a-z]{2,}$', '')") - - with op.batch_alter_table('screenshots', schema=None) as batch_op: - batch_op.add_column(sa.Column('file_name_no_ext', sa.String(length=450), nullable=False)) - - op.execute("UPDATE screenshots SET file_name_no_ext = regexp_replace(file_name, '\\.[a-z]{2,}$', '')") - - with op.batch_alter_table('states', schema=None) as batch_op: - batch_op.add_column(sa.Column('file_name_no_ext', sa.String(length=450), nullable=False)) - - op.execute("UPDATE states SET file_name_no_ext = regexp_replace(file_name, '\\.[a-z]{2,}$', '')") - - -def downgrade() -> None: - with op.batch_alter_table('states', schema=None) as batch_op: - batch_op.drop_column('file_name_no_ext') - - with op.batch_alter_table('screenshots', schema=None) as batch_op: - batch_op.drop_column('file_name_no_ext') - - with op.batch_alter_table('saves', schema=None) as batch_op: - batch_op.drop_column('file_name_no_ext') - - with op.batch_alter_table('roms', schema=None) as batch_op: - batch_op.drop_column('file_name_no_ext') diff --git a/backend/alembic/versions/0018_increase_file_extension.py b/backend/alembic/versions/0018_increase_file_extension.py deleted file mode 100644 index 67e2c2cc6..000000000 --- a/backend/alembic/versions/0018_increase_file_extension.py +++ /dev/null @@ -1,68 +0,0 @@ -"""empty message - -Revision ID: 0018_increase_file_extension -Revises: 0017_file_name_no_ext -Create Date: 2024-01-27 13:00:54.042607 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -# revision identifiers, used by Alembic. -revision = "0018_increase_file_extension" -down_revision = "0017_file_name_no_ext" -branch_labels = None -depends_on = None - - -def upgrade() -> None: - with op.batch_alter_table("saves", schema=None) as batch_op: - batch_op.alter_column( - "file_extension", - existing_type=mysql.VARCHAR(length=10), - type_=sa.String(length=100), - existing_nullable=False, - ) - - with op.batch_alter_table("screenshots", schema=None) as batch_op: - batch_op.alter_column( - "file_extension", - existing_type=mysql.VARCHAR(length=10), - type_=sa.String(length=100), - existing_nullable=False, - ) - - with op.batch_alter_table("states", schema=None) as batch_op: - batch_op.alter_column( - "file_extension", - existing_type=mysql.VARCHAR(length=10), - type_=sa.String(length=100), - existing_nullable=False, - ) - - -def downgrade() -> None: - with op.batch_alter_table("states", schema=None) as batch_op: - batch_op.alter_column( - "file_extension", - existing_type=sa.String(length=100), - type_=mysql.VARCHAR(length=10), - existing_nullable=False, - ) - - with op.batch_alter_table("screenshots", schema=None) as batch_op: - batch_op.alter_column( - "file_extension", - existing_type=sa.String(length=100), - type_=mysql.VARCHAR(length=10), - existing_nullable=False, - ) - - with op.batch_alter_table("saves", schema=None) as batch_op: - batch_op.alter_column( - "file_extension", - existing_type=sa.String(length=100), - type_=mysql.VARCHAR(length=10), - existing_nullable=False, - ) diff --git a/backend/alembic/versions/0019_add_games_extra_metadata.py b/backend/alembic/versions/0019_add_games_extra_metadata.py deleted file mode 100644 index 11163530b..000000000 --- a/backend/alembic/versions/0019_add_games_extra_metadata.py +++ /dev/null @@ -1,39 +0,0 @@ -"""empty message - -Revision ID: 0019_add_games_extra_metadata -Revises: 0018_increase_file_extension -Create Date: 2024-02-02 16:47:26.098480 - -""" - -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -# revision identifiers, used by Alembic. -revision = "0019_add_games_extra_metadata" -down_revision = "0018_increase_file_extension" -branch_labels = None -depends_on = None - - -def upgrade() -> None: - with op.batch_alter_table("roms", schema=None) as batch_op: - batch_op.add_column(sa.Column("igdb_metadata", mysql.JSON(), nullable=True)) - batch_op.alter_column( - "file_extension", existing_type=mysql.VARCHAR(length=100), nullable=False - ) - - with op.batch_alter_table("roms", schema=None) as batch_op: - batch_op.execute("UPDATE roms SET igdb_metadata = '\\{\\}'") - batch_op.execute( - "UPDATE roms SET path_cover_s = '', path_cover_l = '', url_cover = '' where url_cover = 'https://images.igdb.com/igdb/image/upload/t_cover_big/nocover.png'" - ) - - -def downgrade() -> None: - with op.batch_alter_table("roms", schema=None) as batch_op: - batch_op.alter_column( - "file_extension", existing_type=mysql.VARCHAR(length=100), nullable=True - ) - batch_op.drop_column("igdb_metadata") diff --git a/backend/alembic/versions/0020_assets_user_id.py b/backend/alembic/versions/0020_assets_user_id.py deleted file mode 100644 index 694066906..000000000 --- a/backend/alembic/versions/0020_assets_user_id.py +++ /dev/null @@ -1,56 +0,0 @@ -"""empty message - -Revision ID: 0020_assets_user_id -Revises: 0019_add_games_extra_metadata -Create Date: 2024-02-01 17:08:02.103046 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = "0020_assets_user_id" -down_revision = "0019_add_games_extra_metadata" -branch_labels = None -depends_on = None - - -def upgrade() -> None: - # ### commands auto generated by Alembic - please adjust! ### - with op.batch_alter_table("saves", schema=None) as batch_op: - batch_op.add_column(sa.Column("user_id", sa.Integer(), nullable=False)) - batch_op.create_foreign_key( - "saves_user_FK", "users", ["user_id"], ["id"], ondelete="CASCADE" - ) - - with op.batch_alter_table("screenshots", schema=None) as batch_op: - batch_op.add_column(sa.Column("user_id", sa.Integer(), nullable=False)) - batch_op.create_foreign_key( - "screenshots_user_FK", "users", ["user_id"], ["id"], ondelete="CASCADE" - ) - - with op.batch_alter_table("states", schema=None) as batch_op: - batch_op.add_column(sa.Column("user_id", sa.Integer(), nullable=False)) - batch_op.create_foreign_key( - "states_user_FK", "users", ["user_id"], ["id"], ondelete="CASCADE" - ) - - # ### end Alembic commands ### - - -def downgrade() -> None: - # ### commands auto generated by Alembic - please adjust! ### - with op.batch_alter_table("states", schema=None) as batch_op: - batch_op.drop_constraint("states_user_FK", type_="foreignkey") - batch_op.drop_column("user_id") - - with op.batch_alter_table("screenshots", schema=None) as batch_op: - batch_op.drop_constraint("screenshots_user_FK", type_="foreignkey") - batch_op.drop_column("user_id") - - with op.batch_alter_table("saves", schema=None) as batch_op: - batch_op.drop_constraint("saves_user_FK", type_="foreignkey") - batch_op.drop_column("user_id") - - # ### end Alembic commands ### diff --git a/backend/models/assets.py b/backend/models/assets.py index e9f8e27b8..677c9fd84 100644 --- a/backend/models/assets.py +++ b/backend/models/assets.py @@ -1,6 +1,6 @@ from functools import cached_property from models.base import BaseModel -from sqlalchemy import Column, DateTime, ForeignKey, Integer, String, func +from sqlalchemy import Column, DateTime, ForeignKey, Integer, String, func, BigInteger from sqlalchemy.orm import relationship from typing import Optional @@ -22,7 +22,7 @@ class BaseAsset(BaseModel): file_name_no_ext = Column(String(length=450), nullable=False) file_extension = Column(String(length=100), nullable=False) file_path = Column(String(length=1000), nullable=False) - file_size_bytes = Column(Integer(), default=0, nullable=False) + file_size_bytes = Column(BigInteger(), default=0, nullable=False) rom_id = Column( Integer(), ForeignKey("roms.id", ondelete="CASCADE"), nullable=False