diff --git a/backend/alembic/versions/0062_rom_file_category_enum.py b/backend/alembic/versions/0062_rom_file_category_enum.py new file mode 100644 index 000000000..75ae8d08f --- /dev/null +++ b/backend/alembic/versions/0062_rom_file_category_enum.py @@ -0,0 +1,61 @@ +"""Update rom_file.category column enum + +Revision ID: 0062_rom_file_category_enum +Revises: 0061_manual_metadata +Create Date: 2026-01-03 10:03:00.00000 + +""" + +import sqlalchemy as sa +from alembic import op +from sqlalchemy.dialects.postgresql import ENUM + +from utils.database import is_postgresql + +# revision identifiers, used by Alembic. +revision = "0062_rom_file_category_enum" +down_revision = "0061_manual_metadata" +branch_labels = None +depends_on = None + + +def upgrade() -> None: + connection = op.get_bind() + + if is_postgresql(connection): + rom_file_category_enum = ENUM( + "GAME", + "DLC", + "HACK", + "MANUAL", + "PATCH", + "UPDATE", + "MOD", + "DEMO", + "TRANSLATION", + "PROTOTYPE", + name="romfilecategory", + create_type=False, + ) + rom_file_category_enum.create(connection, checkfirst=True) + else: + rom_file_category_enum = sa.Enum( + "GAME", + "DLC", + "HACK", + "MANUAL", + "PATCH", + "UPDATE", + "MOD", + "DEMO", + "TRANSLATION", + "PROTOTYPE", + name="romfilecategory", + ) + + with op.batch_alter_table("rom_files", schema=None) as batch_op: + batch_op.alter_column("category", type_=rom_file_category_enum, nullable=True) + + +def downgrade() -> None: + pass