diff --git a/channel_integrations/__init__.py b/channel_integrations/__init__.py index 546cc91..bf850cf 100644 --- a/channel_integrations/__init__.py +++ b/channel_integrations/__init__.py @@ -5,4 +5,4 @@ which provides an API that can be used to transmit EdX data to the third-party system. """ -__version__ = '0.1.20' +__version__ = '0.1.21' diff --git a/channel_integrations/blackboard/migrations/0004_mariadb_uuid_conversion.py b/channel_integrations/blackboard/migrations/0004_mariadb_uuid_conversion.py new file mode 100644 index 0000000..f3b80c6 --- /dev/null +++ b/channel_integrations/blackboard/migrations/0004_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("SET FOREIGN_KEY_CHECKS=0") + cursor.execute("ALTER TABLE blackboard_channel_blackboardenterprisecustomerconfiguration MODIFY uuid uuid NOT NULL") + cursor.execute("SET FOREIGN_KEY_CHECKS=1") + + +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("SET FOREIGN_KEY_CHECKS=0") + cursor.execute("ALTER TABLE blackboard_channel_blackboardenterprisecustomerconfiguration MODIFY uuid char(32) NOT NULL") + cursor.execute("SET FOREIGN_KEY_CHECKS=1") + + +class Migration(migrations.Migration): + dependencies = [ + ('blackboard_channel', '0003_alter_blackboardenterprisecustomerconfiguration_id_and_more'), + ] + operations = [ + migrations.RunPython( + code=apply_mariadb_migration, + reverse_code=reverse_mariadb_migration, + ), + ] diff --git a/channel_integrations/canvas/migrations/0004_mariadb_uuid_conversion.py b/channel_integrations/canvas/migrations/0004_mariadb_uuid_conversion.py new file mode 100644 index 0000000..283a494 --- /dev/null +++ b/channel_integrations/canvas/migrations/0004_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("SET FOREIGN_KEY_CHECKS=0") + cursor.execute("ALTER TABLE canvas_channel_canvasenterprisecustomerconfiguration MODIFY uuid uuid NOT NULL") + cursor.execute("SET FOREIGN_KEY_CHECKS=1") + + +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("SET FOREIGN_KEY_CHECKS=0") + cursor.execute("ALTER TABLE canvas_channel_canvasenterprisecustomerconfiguration MODIFY uuid char(32) NOT NULL") + cursor.execute("SET FOREIGN_KEY_CHECKS=1") + + +class Migration(migrations.Migration): + dependencies = [ + ('canvas_channel', '0003_alter_canvasenterprisecustomerconfiguration_id_and_more'), + ] + operations = [ + migrations.RunPython( + code=apply_mariadb_migration, + reverse_code=reverse_mariadb_migration, + ), + ] diff --git a/channel_integrations/integrated_channel/migrations/0005_mariadb_uuid_conversion.py b/channel_integrations/integrated_channel/migrations/0005_mariadb_uuid_conversion.py new file mode 100644 index 0000000..59c6d45 --- /dev/null +++ b/channel_integrations/integrated_channel/migrations/0005_mariadb_uuid_conversion.py @@ -0,0 +1,50 @@ +# 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("SET FOREIGN_KEY_CHECKS=0") + cursor.execute("ALTER TABLE channel_integration_genericlearnerdatatransmissionaudit MODIFY enterprise_customer_uuid uuid NULL") + cursor.execute("ALTER TABLE channel_integration_contentmetadataitemtransmission MODIFY enterprise_customer_catalog_uuid uuid NOT NULL") + cursor.execute("SET FOREIGN_KEY_CHECKS=1") + + +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("SET FOREIGN_KEY_CHECKS=0") + cursor.execute("ALTER TABLE channel_integration_genericlearnerdatatransmissionaudit MODIFY enterprise_customer_uuid char(32) NULL") + cursor.execute("ALTER TABLE channel_integration_contentmetadataitemtransmission MODIFY enterprise_customer_catalog_uuid char(32) NOT NULL") + cursor.execute("SET FOREIGN_KEY_CHECKS=1") + + +class Migration(migrations.Migration): + dependencies = [ + ('channel_integration', '0004_alter_apiresponserecord_id_and_more'), + ] + operations = [ + migrations.RunPython( + code=apply_mariadb_migration, + reverse_code=reverse_mariadb_migration, + ), + ]