diff --git a/enterprise_subsidy/__init__.py b/enterprise_subsidy/__init__.py index 71421142..e4b5acae 100644 --- a/enterprise_subsidy/__init__.py +++ b/enterprise_subsidy/__init__.py @@ -1,4 +1,4 @@ """ enterprise-subsidy module. """ -__version__ = '1.0.0' +__version__ = '1.0.1' diff --git a/enterprise_subsidy/apps/subsidy/migrations/0023_mariadb_uuid_conversion.py b/enterprise_subsidy/apps/subsidy/migrations/0023_mariadb_uuid_conversion.py new file mode 100644 index 00000000..30678647 --- /dev/null +++ b/enterprise_subsidy/apps/subsidy/migrations/0023_mariadb_uuid_conversion.py @@ -0,0 +1,48 @@ +# Generated migration for MariaDB UUID field conversion (Django 5.2) +""" +Migration to convert UUIDField from char(32) to uuid type for MariaDB compatibility. +""" + +from django.db import migrations + + +def apply_mariadb_migration(apps, schema_editor): + connection = schema_editor.connection + if connection.vendor != 'mysql': + return + with connection.cursor() as cursor: + cursor.execute("SELECT VERSION()") + version = cursor.fetchone()[0] + if 'mariadb' not in version.lower(): + return + with connection.cursor() as cursor: + cursor.execute("ALTER TABLE subsidy_subsidy MODIFY uuid uuid NOT NULL") + cursor.execute("ALTER TABLE subsidy_subsidy MODIFY enterprise_customer_uuid uuid NOT NULL") + cursor.execute("ALTER TABLE subsidy_subsidyroleassignment MODIFY enterprise_id uuid NULL") + + +def reverse_mariadb_migration(apps, schema_editor): + connection = schema_editor.connection + if connection.vendor != 'mysql': + return + with connection.cursor() as cursor: + cursor.execute("SELECT VERSION()") + version = cursor.fetchone()[0] + if 'mariadb' not in version.lower(): + return + with connection.cursor() as cursor: + cursor.execute("ALTER TABLE subsidy_subsidy MODIFY uuid char(32) NOT NULL") + cursor.execute("ALTER TABLE subsidy_subsidy MODIFY enterprise_customer_uuid char(32) NOT NULL") + cursor.execute("ALTER TABLE subsidy_subsidyroleassignment MODIFY enterprise_id char(32) NULL") + + +class Migration(migrations.Migration): + dependencies = [ + ('subsidy', '0022_backfill_initial_deposits'), + ] + operations = [ + migrations.RunPython( + code=apply_mariadb_migration, + reverse_code=reverse_mariadb_migration, + ), + ]