mirror of
https://github.com/django/django.git
synced 2025-10-25 06:36:07 +00:00
Revert "[1.7.x] Fixed #23938 -- Added migration support for m2m to concrete fields and vice versa"
This reverts commit 1702bc52cc.
This doesn't work on stable/1.7.x because #23844 wasn't backported and we're
not willing to do so because it's a large change.
This commit is contained in:
@@ -116,10 +116,6 @@ class AutodetectorTests(TestCase):
|
||||
("id", models.AutoField(primary_key=True)),
|
||||
("publishers", models.ManyToManyField("testapp.Publisher", through="testapp.Contract")),
|
||||
])
|
||||
author_with_former_m2m = ModelState("testapp", "Author", [
|
||||
("id", models.AutoField(primary_key=True)),
|
||||
("publishers", models.CharField(max_length=100)),
|
||||
])
|
||||
author_with_options = ModelState("testapp", "Author", [
|
||||
("id", models.AutoField(primary_key=True)),
|
||||
], {
|
||||
@@ -1278,39 +1274,6 @@ class AutodetectorTests(TestCase):
|
||||
self.assertOperationAttributes(changes, "testapp", 0, 3, name="publisher", model_name='contract')
|
||||
self.assertOperationAttributes(changes, "testapp", 0, 4, name="Contract")
|
||||
|
||||
def test_concrete_field_changed_to_many_to_many(self):
|
||||
"""
|
||||
#23938 - Tests that changing a concrete field into a ManyToManyField
|
||||
first removes the concrete field and then adds the m2m field.
|
||||
"""
|
||||
before = self.make_project_state([self.author_with_former_m2m])
|
||||
after = self.make_project_state([self.author_with_m2m, self.publisher])
|
||||
autodetector = MigrationAutodetector(before, after)
|
||||
changes = autodetector._detect_changes()
|
||||
# Right number/type of migrations?
|
||||
self.assertNumberMigrations(changes, "testapp", 1)
|
||||
self.assertOperationTypes(changes, "testapp", 0, ["CreateModel", "RemoveField", "AddField"])
|
||||
self.assertOperationAttributes(changes, 'testapp', 0, 0, name='Publisher')
|
||||
self.assertOperationAttributes(changes, 'testapp', 0, 1, name="publishers", model_name='author')
|
||||
self.assertOperationAttributes(changes, 'testapp', 0, 2, name="publishers", model_name='author')
|
||||
|
||||
def test_many_to_many_changed_to_concrete_field(self):
|
||||
"""
|
||||
#23938 - Tests that changing a ManyToManyField into a concrete field
|
||||
first removes the m2m field and then adds the concrete field.
|
||||
"""
|
||||
before = self.make_project_state([self.author_with_m2m, self.publisher])
|
||||
after = self.make_project_state([self.author_with_former_m2m])
|
||||
autodetector = MigrationAutodetector(before, after)
|
||||
changes = autodetector._detect_changes()
|
||||
# Right number/type of migrations?
|
||||
self.assertNumberMigrations(changes, "testapp", 1)
|
||||
self.assertOperationTypes(changes, "testapp", 0, ["RemoveField", "AddField", "DeleteModel"])
|
||||
self.assertOperationAttributes(changes, 'testapp', 0, 0, name="publishers", model_name='author')
|
||||
self.assertOperationAttributes(changes, 'testapp', 0, 1, name="publishers", model_name='author')
|
||||
self.assertOperationAttributes(changes, 'testapp', 0, 2, name='Publisher')
|
||||
self.assertOperationFieldAttributes(changes, 'testapp', 0, 1, max_length=100)
|
||||
|
||||
def test_non_circular_foreignkey_dependency_removal(self):
|
||||
"""
|
||||
If two models with a ForeignKey from one to the other are removed at the
|
||||
|
||||
Reference in New Issue
Block a user