Test reworking migration for mysql/postgresql

This commit is contained in:
Griatch 2025-03-02 12:29:13 +01:00
parent fbbe4bd19b
commit 604a1b6a66

View file

@ -9,8 +9,11 @@ class Migration(migrations.Migration):
("typeclasses", "0016_alter_attribute_id_alter_tag_id"), ("typeclasses", "0016_alter_attribute_id_alter_tag_id"),
] ]
operations = [ def get_operations(self, app_labels, schema_editor):
# First create the index with the old name that Django expects """Return database-specific operations"""
if schema_editor.connection.vendor == "sqlite":
# For SQLite, we know the two-step process works
return [
migrations.AddIndex( migrations.AddIndex(
model_name="tag", model_name="tag",
index=models.Index( index=models.Index(
@ -18,10 +21,22 @@ class Migration(migrations.Migration):
name="typeclasses_tag_db_key_db_category_db_tagtype_db_model_idx", name="typeclasses_tag_db_key_db_category_db_tagtype_db_model_idx",
), ),
), ),
# Then rename it to the new name
migrations.RenameIndex( migrations.RenameIndex(
model_name="tag", model_name="tag",
new_name="typeclasses_db_key_be0c81_idx", new_name="typeclasses_db_key_be0c81_idx",
old_fields=("db_key", "db_category", "db_tagtype", "db_model"), old_fields=("db_key", "db_category", "db_tagtype", "db_model"),
), ),
] ]
else:
# For other databases, create the index directly with its final name
return [
migrations.AddIndex(
model_name="tag",
index=models.Index(
fields=["db_key", "db_category", "db_tagtype", "db_model"],
name="typeclasses_db_key_be0c81_idx",
),
),
]
operations = [] # Will be populated at runtime by get_operations()