mirror of
https://github.com/django/django.git
synced 2024-12-31 21:46:05 +00:00
Fixed #35717 -- Reduced Create/RemoveCollation operations when optimizing migrations.
This commit is contained in:
parent
68cee15a8f
commit
cee95e6172
@ -237,6 +237,11 @@ class CreateCollation(CollationOperation):
|
|||||||
def migration_name_fragment(self):
|
def migration_name_fragment(self):
|
||||||
return "create_collation_%s" % self.name.lower()
|
return "create_collation_%s" % self.name.lower()
|
||||||
|
|
||||||
|
def reduce(self, operation, app_label):
|
||||||
|
if isinstance(operation, RemoveCollation) and self.name == operation.name:
|
||||||
|
return []
|
||||||
|
return super().reduce(operation, app_label)
|
||||||
|
|
||||||
|
|
||||||
class RemoveCollation(CollationOperation):
|
class RemoveCollation(CollationOperation):
|
||||||
"""Remove a collation."""
|
"""Remove a collation."""
|
||||||
|
@ -318,7 +318,7 @@ class CreateExtensionTests(PostgreSQLTestCase):
|
|||||||
|
|
||||||
|
|
||||||
@unittest.skipUnless(connection.vendor == "postgresql", "PostgreSQL specific tests.")
|
@unittest.skipUnless(connection.vendor == "postgresql", "PostgreSQL specific tests.")
|
||||||
class CreateCollationTests(PostgreSQLTestCase):
|
class CreateCollationTests(OptimizerTestBase, PostgreSQLTestCase):
|
||||||
app_label = "test_allow_create_collation"
|
app_label = "test_allow_create_collation"
|
||||||
|
|
||||||
@override_settings(DATABASE_ROUTERS=[NoMigrationRouter()])
|
@override_settings(DATABASE_ROUTERS=[NoMigrationRouter()])
|
||||||
@ -459,6 +459,24 @@ class CreateCollationTests(PostgreSQLTestCase):
|
|||||||
"),",
|
"),",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_reduce_create_remove(self):
|
||||||
|
self.assertOptimizesTo(
|
||||||
|
[
|
||||||
|
CreateCollation(
|
||||||
|
"sample_collation",
|
||||||
|
"und-u-ks-level2",
|
||||||
|
provider="icu",
|
||||||
|
deterministic=False,
|
||||||
|
),
|
||||||
|
RemoveCollation(
|
||||||
|
"sample_collation",
|
||||||
|
# Different locale
|
||||||
|
"de-u-ks-level1",
|
||||||
|
),
|
||||||
|
],
|
||||||
|
[],
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@unittest.skipUnless(connection.vendor == "postgresql", "PostgreSQL specific tests.")
|
@unittest.skipUnless(connection.vendor == "postgresql", "PostgreSQL specific tests.")
|
||||||
class RemoveCollationTests(PostgreSQLTestCase):
|
class RemoveCollationTests(PostgreSQLTestCase):
|
||||||
|
Loading…
Reference in New Issue
Block a user