From b659ebe97fb7e603a80323cc9c0e695dfa0299d5 Mon Sep 17 00:00:00 2001 From: Georges-Antoine Assi Date: Thu, 23 Jan 2025 19:29:16 -0500 Subject: [PATCH 1/2] [ROMM-1529] --- .../alembic/versions/0032_longer_fs_fields.py | 119 ++++++++++++++++++ backend/models/platform.py | 6 +- backend/models/rom.py | 8 +- 3 files changed, 126 insertions(+), 7 deletions(-) create mode 100644 backend/alembic/versions/0032_longer_fs_fields.py diff --git a/backend/alembic/versions/0032_longer_fs_fields.py b/backend/alembic/versions/0032_longer_fs_fields.py new file mode 100644 index 000000000..280903c93 --- /dev/null +++ b/backend/alembic/versions/0032_longer_fs_fields.py @@ -0,0 +1,119 @@ +"""empty message + +Revision ID: 0032_longer_fs_fields +Revises: 0031_datetime_to_timestamp +Create Date: 2025-01-24 02:18:30.069263 + +""" + +import sqlalchemy as sa +from alembic import op +from sqlalchemy.dialects import mysql + +# revision identifiers, used by Alembic. +revision = "0032_longer_fs_fields" +down_revision = "0031_datetime_to_timestamp" +branch_labels = None +depends_on = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table("platforms", schema=None) as batch_op: + batch_op.alter_column( + "slug", + existing_type=mysql.VARCHAR(length=50), + type_=sa.String(length=100), + existing_nullable=False, + ) + batch_op.alter_column( + "fs_slug", + existing_type=mysql.VARCHAR(length=50), + type_=sa.String(length=100), + existing_nullable=False, + ) + batch_op.alter_column( + "category", + existing_type=mysql.VARCHAR(length=50), + type_=sa.String(length=100), + existing_nullable=True, + ) + + with op.batch_alter_table("roms", schema=None) as batch_op: + batch_op.alter_column( + "file_name", existing_type=mysql.VARCHAR(length=450), nullable=False + ) + batch_op.alter_column( + "file_name_no_tags", existing_type=mysql.VARCHAR(length=450), nullable=False + ) + batch_op.alter_column( + "file_name_no_ext", existing_type=mysql.VARCHAR(length=450), nullable=False + ) + batch_op.alter_column( + "file_extension", existing_type=mysql.VARCHAR(length=100), nullable=False + ) + batch_op.alter_column( + "file_path", existing_type=mysql.VARCHAR(length=1000), nullable=False + ) + + with op.batch_alter_table("users", schema=None) as batch_op: + batch_op.alter_column( + "role", + existing_type=mysql.ENUM("VIEWER", "EDITOR", "ADMIN"), + nullable=False, + ) + batch_op.alter_column( + "avatar_path", existing_type=mysql.VARCHAR(length=255), nullable=False + ) + + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table("users", schema=None) as batch_op: + batch_op.alter_column( + "avatar_path", existing_type=mysql.VARCHAR(length=255), nullable=True + ) + batch_op.alter_column( + "role", existing_type=mysql.ENUM("VIEWER", "EDITOR", "ADMIN"), nullable=True + ) + + with op.batch_alter_table("roms", schema=None) as batch_op: + batch_op.alter_column( + "file_path", existing_type=mysql.VARCHAR(length=1000), nullable=True + ) + batch_op.alter_column( + "file_extension", existing_type=mysql.VARCHAR(length=100), nullable=True + ) + batch_op.alter_column( + "file_name_no_ext", existing_type=mysql.VARCHAR(length=450), nullable=True + ) + batch_op.alter_column( + "file_name_no_tags", existing_type=mysql.VARCHAR(length=450), nullable=True + ) + batch_op.alter_column( + "file_name", existing_type=mysql.VARCHAR(length=450), nullable=True + ) + + with op.batch_alter_table("platforms", schema=None) as batch_op: + batch_op.alter_column( + "category", + existing_type=sa.String(length=100), + type_=mysql.VARCHAR(length=50), + existing_nullable=True, + ) + batch_op.alter_column( + "fs_slug", + existing_type=sa.String(length=100), + type_=mysql.VARCHAR(length=50), + existing_nullable=False, + ) + batch_op.alter_column( + "slug", + existing_type=sa.String(length=100), + type_=mysql.VARCHAR(length=50), + existing_nullable=False, + ) + + # ### end Alembic commands ### diff --git a/backend/models/platform.py b/backend/models/platform.py index 370affac6..c293e9831 100644 --- a/backend/models/platform.py +++ b/backend/models/platform.py @@ -21,11 +21,11 @@ class Platform(BaseModel): igdb_id: Mapped[int | None] sgdb_id: Mapped[int | None] moby_id: Mapped[int | None] - slug: Mapped[str] = mapped_column(String(length=50)) - fs_slug: Mapped[str] = mapped_column(String(length=50)) + slug: Mapped[str] = mapped_column(String(length=100)) + fs_slug: Mapped[str] = mapped_column(String(length=100)) name: Mapped[str] = mapped_column(String(length=400)) custom_name: Mapped[str | None] = mapped_column(String(length=400), default="") - category: Mapped[str | None] = mapped_column(String(length=50), default="") + category: Mapped[str | None] = mapped_column(String(length=100), default="") generation: Mapped[int | None] family_name: Mapped[str | None] = mapped_column(String(length=1000), default="") family_slug: Mapped[str | None] = mapped_column(String(length=1000), default="") diff --git a/backend/models/rom.py b/backend/models/rom.py index 0d7d12a3b..a01ed0221 100644 --- a/backend/models/rom.py +++ b/backend/models/rom.py @@ -72,7 +72,7 @@ class Rom(BaseModel): Text, default="", doc="URL to cover image stored in IGDB" ) - revision: Mapped[str | None] = mapped_column(String(100)) + revision: Mapped[str | None] = mapped_column(String(length=100)) regions: Mapped[list[str] | None] = mapped_column(CustomJSON(), default=[]) languages: Mapped[list[str] | None] = mapped_column(CustomJSON(), default=[]) tags: Mapped[list[str] | None] = mapped_column(CustomJSON(), default=[]) @@ -84,9 +84,9 @@ class Rom(BaseModel): multi: Mapped[bool] = mapped_column(default=False) files: Mapped[list[RomFile] | None] = mapped_column(CustomJSON(), default=[]) - crc_hash: Mapped[str | None] = mapped_column(String(100)) - md5_hash: Mapped[str | None] = mapped_column(String(100)) - sha1_hash: Mapped[str | None] = mapped_column(String(100)) + crc_hash: Mapped[str | None] = mapped_column(String(length=100)) + md5_hash: Mapped[str | None] = mapped_column(String(length=100)) + sha1_hash: Mapped[str | None] = mapped_column(String(length=100)) platform_id: Mapped[int] = mapped_column( ForeignKey("platforms.id", ondelete="CASCADE") From 597961827ef26e23132be1c34445a475b0f2737f Mon Sep 17 00:00:00 2001 From: Georges-Antoine Assi Date: Fri, 24 Jan 2025 11:22:56 -0500 Subject: [PATCH 2/2] remove unnecessary migrations --- .../alembic/versions/0032_longer_fs_fields.py | 53 ------------------- 1 file changed, 53 deletions(-) diff --git a/backend/alembic/versions/0032_longer_fs_fields.py b/backend/alembic/versions/0032_longer_fs_fields.py index 280903c93..ff99e426e 100644 --- a/backend/alembic/versions/0032_longer_fs_fields.py +++ b/backend/alembic/versions/0032_longer_fs_fields.py @@ -38,64 +38,11 @@ def upgrade() -> None: type_=sa.String(length=100), existing_nullable=True, ) - - with op.batch_alter_table("roms", schema=None) as batch_op: - batch_op.alter_column( - "file_name", existing_type=mysql.VARCHAR(length=450), nullable=False - ) - batch_op.alter_column( - "file_name_no_tags", existing_type=mysql.VARCHAR(length=450), nullable=False - ) - batch_op.alter_column( - "file_name_no_ext", existing_type=mysql.VARCHAR(length=450), nullable=False - ) - batch_op.alter_column( - "file_extension", existing_type=mysql.VARCHAR(length=100), nullable=False - ) - batch_op.alter_column( - "file_path", existing_type=mysql.VARCHAR(length=1000), nullable=False - ) - - with op.batch_alter_table("users", schema=None) as batch_op: - batch_op.alter_column( - "role", - existing_type=mysql.ENUM("VIEWER", "EDITOR", "ADMIN"), - nullable=False, - ) - batch_op.alter_column( - "avatar_path", existing_type=mysql.VARCHAR(length=255), nullable=False - ) - # ### end Alembic commands ### def downgrade() -> None: # ### commands auto generated by Alembic - please adjust! ### - with op.batch_alter_table("users", schema=None) as batch_op: - batch_op.alter_column( - "avatar_path", existing_type=mysql.VARCHAR(length=255), nullable=True - ) - batch_op.alter_column( - "role", existing_type=mysql.ENUM("VIEWER", "EDITOR", "ADMIN"), nullable=True - ) - - with op.batch_alter_table("roms", schema=None) as batch_op: - batch_op.alter_column( - "file_path", existing_type=mysql.VARCHAR(length=1000), nullable=True - ) - batch_op.alter_column( - "file_extension", existing_type=mysql.VARCHAR(length=100), nullable=True - ) - batch_op.alter_column( - "file_name_no_ext", existing_type=mysql.VARCHAR(length=450), nullable=True - ) - batch_op.alter_column( - "file_name_no_tags", existing_type=mysql.VARCHAR(length=450), nullable=True - ) - batch_op.alter_column( - "file_name", existing_type=mysql.VARCHAR(length=450), nullable=True - ) - with op.batch_alter_table("platforms", schema=None) as batch_op: batch_op.alter_column( "category",