Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion enterprise_data/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
Enterprise data api application. This Django app exposes API endpoints used by enterprises.
"""

__version__ = "10.21.8"
__version__ = "10.21.9"
83 changes: 83 additions & 0 deletions enterprise_data/migrations/0049_mariadb_uuid_conversion.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# 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:
# EnterpriseEnrollment
cursor.execute("ALTER TABLE enterprise_data_enterpriseenrollment MODIFY enterprise_customer_uuid uuid NOT NULL")
cursor.execute("ALTER TABLE enterprise_data_enterpriseenrollment MODIFY budget_id uuid NULL")
cursor.execute("ALTER TABLE enterprise_data_enterpriseenrollment MODIFY subscription_license_uuid uuid NULL")
cursor.execute("ALTER TABLE enterprise_data_enterpriseenrollment MODIFY enterprise_group_uuid uuid NULL")
# EnterpriseUser
cursor.execute("ALTER TABLE enterprise_data_enterpriseuser MODIFY enterprise_customer_uuid uuid NOT NULL")
# EnterpriseOffer
cursor.execute("ALTER TABLE enterprise_data_enterpriseoffer MODIFY enterprise_customer_uuid uuid NOT NULL")
cursor.execute("ALTER TABLE enterprise_data_enterpriseoffer MODIFY enterprise_id uuid NOT NULL")
# EnterpriseBudget
cursor.execute("ALTER TABLE enterprise_data_enterprisebudget MODIFY enterprise_customer_uuid uuid NOT NULL")
# EnterpriseSubsidyBudget
cursor.execute("ALTER TABLE enterprise_data_enterprisesubsidybudget MODIFY subsidy_access_policy_uuid uuid NOT NULL")
cursor.execute("ALTER TABLE enterprise_data_enterprisesubsidybudget MODIFY subsidy_uuid uuid NOT NULL")
cursor.execute("ALTER TABLE enterprise_data_enterprisesubsidybudget MODIFY enterprise_customer_uuid uuid NOT NULL")
# EnterpriseLearner
cursor.execute("ALTER TABLE enterprise_data_enterpriselearner MODIFY enterprise_customer_id uuid NULL")
cursor.execute("ALTER TABLE enterprise_data_enterpriselearner MODIFY enterprise_group_uuid uuid NULL")
cursor.execute("ALTER TABLE enterprise_data_enterpriselearner MODIFY enterprise_group_membership_uuid uuid NULL")
# EnterpriseSubsidyTransaction
cursor.execute("ALTER TABLE enterprise_data_enterprisesubsidytransaction MODIFY enterprise_id uuid NOT NULL")
cursor.execute("ALTER TABLE enterprise_data_enterprisesubsidytransaction MODIFY subsidy_transaction_id uuid NULL")
cursor.execute("ALTER TABLE enterprise_data_enterprisesubsidytransaction MODIFY enterprise_customer_uuid 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 enterprise_data_enterpriseenrollment MODIFY enterprise_customer_uuid char(32) NOT NULL")
cursor.execute("ALTER TABLE enterprise_data_enterpriseenrollment MODIFY budget_id char(32) NULL")
cursor.execute("ALTER TABLE enterprise_data_enterpriseenrollment MODIFY subscription_license_uuid char(32) NULL")
cursor.execute("ALTER TABLE enterprise_data_enterpriseenrollment MODIFY enterprise_group_uuid char(32) NULL")
cursor.execute("ALTER TABLE enterprise_data_enterpriseuser MODIFY enterprise_customer_uuid char(32) NOT NULL")
cursor.execute("ALTER TABLE enterprise_data_enterpriseoffer MODIFY enterprise_customer_uuid char(32) NOT NULL")
cursor.execute("ALTER TABLE enterprise_data_enterpriseoffer MODIFY enterprise_id char(32) NOT NULL")
cursor.execute("ALTER TABLE enterprise_data_enterprisebudget MODIFY enterprise_customer_uuid char(32) NOT NULL")
cursor.execute("ALTER TABLE enterprise_data_enterprisesubsidybudget MODIFY subsidy_access_policy_uuid char(32) NOT NULL")
cursor.execute("ALTER TABLE enterprise_data_enterprisesubsidybudget MODIFY subsidy_uuid char(32) NOT NULL")
cursor.execute("ALTER TABLE enterprise_data_enterprisesubsidybudget MODIFY enterprise_customer_uuid char(32) NOT NULL")
cursor.execute("ALTER TABLE enterprise_data_enterpriselearner MODIFY enterprise_customer_id char(32) NULL")
cursor.execute("ALTER TABLE enterprise_data_enterpriselearner MODIFY enterprise_group_uuid char(32) NULL")
cursor.execute("ALTER TABLE enterprise_data_enterpriselearner MODIFY enterprise_group_membership_uuid char(32) NULL")
cursor.execute("ALTER TABLE enterprise_data_enterprisesubsidytransaction MODIFY enterprise_id char(32) NOT NULL")
cursor.execute("ALTER TABLE enterprise_data_enterprisesubsidytransaction MODIFY subsidy_transaction_id char(32) NULL")
cursor.execute("ALTER TABLE enterprise_data_enterprisesubsidytransaction MODIFY enterprise_customer_uuid char(32) NULL")


class Migration(migrations.Migration):
dependencies = [
('enterprise_data', '0048_alter_enterpriseexecedlcmoduleperformance_avg_after_lo_score_and_more'),
]
operations = [
migrations.RunPython(
code=apply_mariadb_migration,
reverse_code=reverse_mariadb_migration,
),
]
44 changes: 44 additions & 0 deletions enterprise_data_roles/migrations/0008_mariadb_uuid_conversion.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# 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 enterprise_data_roles_enterprisedataroleassignment 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 enterprise_data_roles_enterprisedataroleassignment MODIFY enterprise_id char(32) NULL")


class Migration(migrations.Migration):
dependencies = [
('enterprise_data_roles', '0007_enterprisedataroleassignment_applies_to_all_contexts'),
]
operations = [
migrations.RunPython(
code=apply_mariadb_migration,
reverse_code=reverse_mariadb_migration,
),
]
Loading