Fixed #29180 -- Fixed a regression where migrations already in the plan were readded.
Regression in a38ae914d8
.
This commit is contained in:
parent
4d420a53cf
commit
5b083a824e
|
@ -356,7 +356,7 @@ class MigrationGraph:
|
||||||
plan = []
|
plan = []
|
||||||
for node in nodes:
|
for node in nodes:
|
||||||
for migration in self.forwards_plan(node):
|
for migration in self.forwards_plan(node):
|
||||||
if migration in plan or at_end or migration not in nodes:
|
if migration not in plan and (at_end or migration not in nodes):
|
||||||
plan.append(migration)
|
plan.append(migration)
|
||||||
return plan
|
return plan
|
||||||
|
|
||||||
|
|
|
@ -81,6 +81,22 @@ class LoaderTests(TestCase):
|
||||||
# Ensure we've included unmigrated apps in there too
|
# Ensure we've included unmigrated apps in there too
|
||||||
self.assertIn("basic", project_state.real_apps)
|
self.assertIn("basic", project_state.real_apps)
|
||||||
|
|
||||||
|
@override_settings(MIGRATION_MODULES={
|
||||||
|
'migrations': 'migrations.test_migrations',
|
||||||
|
'migrations2': 'migrations2.test_migrations_2',
|
||||||
|
})
|
||||||
|
@modify_settings(INSTALLED_APPS={'append': 'migrations2'})
|
||||||
|
def test_plan_handles_repeated_migrations(self):
|
||||||
|
"""
|
||||||
|
_generate_plan() doesn't readd migrations already in the plan (#29180).
|
||||||
|
"""
|
||||||
|
migration_loader = MigrationLoader(connection)
|
||||||
|
nodes = [('migrations', '0002_second'), ('migrations2', '0001_initial')]
|
||||||
|
self.assertEqual(
|
||||||
|
migration_loader.graph._generate_plan(nodes, at_end=True),
|
||||||
|
[('migrations', '0001_initial'), ('migrations', '0002_second'), ('migrations2', '0001_initial')]
|
||||||
|
)
|
||||||
|
|
||||||
@override_settings(MIGRATION_MODULES={"migrations": "migrations.test_migrations_unmigdep"})
|
@override_settings(MIGRATION_MODULES={"migrations": "migrations.test_migrations_unmigdep"})
|
||||||
def test_load_unmigrated_dependency(self):
|
def test_load_unmigrated_dependency(self):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue