mirror of https://github.com/django/django.git
Refs #26709 -- Checked allow_migrate_model() in Add/RemoveIndex operations.
This commit is contained in:
parent
3551fb537f
commit
fc3ac65735
|
@ -772,10 +772,12 @@ class AddIndex(IndexOperation):
|
||||||
|
|
||||||
def database_forwards(self, app_label, schema_editor, from_state, to_state):
|
def database_forwards(self, app_label, schema_editor, from_state, to_state):
|
||||||
model = to_state.apps.get_model(app_label, self.model_name)
|
model = to_state.apps.get_model(app_label, self.model_name)
|
||||||
|
if self.allow_migrate_model(schema_editor.connection.alias, model):
|
||||||
schema_editor.add_index(model, self.index)
|
schema_editor.add_index(model, self.index)
|
||||||
|
|
||||||
def database_backwards(self, app_label, schema_editor, from_state, to_state):
|
def database_backwards(self, app_label, schema_editor, from_state, to_state):
|
||||||
model = from_state.apps.get_model(app_label, self.model_name)
|
model = from_state.apps.get_model(app_label, self.model_name)
|
||||||
|
if self.allow_migrate_model(schema_editor.connection.alias, model):
|
||||||
schema_editor.remove_index(model, self.index)
|
schema_editor.remove_index(model, self.index)
|
||||||
|
|
||||||
def deconstruct(self):
|
def deconstruct(self):
|
||||||
|
@ -812,12 +814,14 @@ class RemoveIndex(IndexOperation):
|
||||||
|
|
||||||
def database_forwards(self, app_label, schema_editor, from_state, to_state):
|
def database_forwards(self, app_label, schema_editor, from_state, to_state):
|
||||||
model = from_state.apps.get_model(app_label, self.model_name)
|
model = from_state.apps.get_model(app_label, self.model_name)
|
||||||
|
if self.allow_migrate_model(schema_editor.connection.alias, model):
|
||||||
from_model_state = from_state.models[app_label, self.model_name_lower]
|
from_model_state = from_state.models[app_label, self.model_name_lower]
|
||||||
index = from_model_state.get_index_by_name(self.name)
|
index = from_model_state.get_index_by_name(self.name)
|
||||||
schema_editor.remove_index(model, index)
|
schema_editor.remove_index(model, index)
|
||||||
|
|
||||||
def database_backwards(self, app_label, schema_editor, from_state, to_state):
|
def database_backwards(self, app_label, schema_editor, from_state, to_state):
|
||||||
model = to_state.apps.get_model(app_label, self.model_name)
|
model = to_state.apps.get_model(app_label, self.model_name)
|
||||||
|
if self.allow_migrate_model(schema_editor.connection.alias, model):
|
||||||
to_model_state = to_state.models[app_label, self.model_name_lower]
|
to_model_state = to_state.models[app_label, self.model_name_lower]
|
||||||
index = to_model_state.get_index_by_name(self.name)
|
index = to_model_state.get_index_by_name(self.name)
|
||||||
schema_editor.add_index(model, index)
|
schema_editor.add_index(model, index)
|
||||||
|
|
|
@ -2347,3 +2347,21 @@ class SwappableOperationTests(OperationTestBase):
|
||||||
with connection.schema_editor() as editor:
|
with connection.schema_editor() as editor:
|
||||||
operation.database_backwards("test_adfligsw", editor, new_state, project_state)
|
operation.database_backwards("test_adfligsw", editor, new_state, project_state)
|
||||||
self.assertTableNotExists("test_adfligsw_pony")
|
self.assertTableNotExists("test_adfligsw_pony")
|
||||||
|
|
||||||
|
@override_settings(TEST_SWAP_MODEL='migrations.SomeFakeModel')
|
||||||
|
def test_indexes_ignore_swapped(self):
|
||||||
|
"""
|
||||||
|
Add/RemoveIndex operations ignore swapped models.
|
||||||
|
"""
|
||||||
|
operation = migrations.AddIndex('Pony', models.Index(fields=['pink'], name='my_name_idx'))
|
||||||
|
project_state, new_state = self.make_test_state('test_adinigsw', operation)
|
||||||
|
with connection.schema_editor() as editor:
|
||||||
|
# No database queries should be run for swapped models
|
||||||
|
operation.database_forwards('test_adinigsw', editor, project_state, new_state)
|
||||||
|
operation.database_backwards('test_adinigsw', editor, new_state, project_state)
|
||||||
|
|
||||||
|
operation = migrations.RemoveIndex('Pony', models.Index(fields=['pink'], name='my_name_idx'))
|
||||||
|
project_state, new_state = self.make_test_state("test_rminigsw", operation)
|
||||||
|
with connection.schema_editor() as editor:
|
||||||
|
operation.database_forwards('test_rminigsw', editor, project_state, new_state)
|
||||||
|
operation.database_backwards('test_rminigsw', editor, new_state, project_state)
|
||||||
|
|
Loading…
Reference in New Issue