Fixed #22975: Don't call rename SQL if not needed
This commit is contained in:
parent
2984b30ce8
commit
dcb4ed5170
|
@ -367,6 +367,8 @@ class BaseDatabaseSchemaEditor(object):
|
|||
"""
|
||||
Renames the table a model points to.
|
||||
"""
|
||||
if old_db_table == new_db_table:
|
||||
return
|
||||
self.execute(self.sql_rename_table % {
|
||||
"old_table": self.quote_name(old_db_table),
|
||||
"new_table": self.quote_name(new_db_table),
|
||||
|
|
|
@ -769,6 +769,26 @@ class OperationTests(OperationTestBase):
|
|||
self.assertTableExists("test_almota_pony")
|
||||
self.assertTableNotExists("test_almota_pony_2")
|
||||
|
||||
def test_alter_model_table_noop(self):
|
||||
"""
|
||||
Tests the AlterModelTable operation if the table name is not changed.
|
||||
"""
|
||||
project_state = self.set_up_test_model("test_almota")
|
||||
# Test the state alteration
|
||||
operation = migrations.AlterModelTable("Pony", "test_almota_pony")
|
||||
new_state = project_state.clone()
|
||||
operation.state_forwards("test_almota", new_state)
|
||||
self.assertEqual(new_state.models["test_almota", "pony"].options["db_table"], "test_almota_pony")
|
||||
# Test the database alteration
|
||||
self.assertTableExists("test_almota_pony")
|
||||
with connection.schema_editor() as editor:
|
||||
operation.database_forwards("test_almota", editor, project_state, new_state)
|
||||
self.assertTableExists("test_almota_pony")
|
||||
# And test reversal
|
||||
with connection.schema_editor() as editor:
|
||||
operation.database_backwards("test_almota", editor, new_state, project_state)
|
||||
self.assertTableExists("test_almota_pony")
|
||||
|
||||
def test_alter_field(self):
|
||||
"""
|
||||
Tests the AlterField operation.
|
||||
|
|
Loading…
Reference in New Issue