summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorAndrew Godwin <andrew@aeracode.org>2014-07-29 09:24:07 -0700
committerAndrew Godwin <andrew@aeracode.org>2014-07-29 09:24:22 -0700
commit9abc36b626bb1902154adc5d02bb081556577ceb (patch)
treef1d0f6deb6016d5d37338accacb0714335465736 /django
parent053af1422a051cf22600d2a0cbecd8c4fdb0b068 (diff)
[1.7.x] Fix soft_applied in a way that doesn't break tests
Diffstat (limited to 'django')
-rw-r--r--django/db/migrations/executor.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/django/db/migrations/executor.py b/django/db/migrations/executor.py
index ad3c8c30c9..b6275690f9 100644
--- a/django/db/migrations/executor.py
+++ b/django/db/migrations/executor.py
@@ -134,6 +134,10 @@ class MigrationExecutor(object):
project_state = self.loader.project_state((migration.app_label, migration.name), at_end=True)
apps = project_state.render()
found_create_migration = False
+ # Bail if the migration isn't the first one in its app
+ if [name for app, name in migration.dependencies if app == migration.app_label]:
+ return False
+ # Make sure all create model are done
for operation in migration.operations:
if isinstance(operation, migrations.CreateModel):
model = apps.get_model(migration.app_label, operation.name)
@@ -144,8 +148,6 @@ class MigrationExecutor(object):
if model._meta.db_table not in self.connection.introspection.get_table_list(self.connection.cursor()):
return False
found_create_migration = True
- else:
- return False
# If we get this far and we found at least one CreateModel migration,
# the migration is considered implicitly applied.
return found_create_migration