summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorAndrew Godwin <andrew@aeracode.org>2014-08-04 11:58:44 +1000
committerAndrew Godwin <andrew@aeracode.org>2014-08-04 11:59:48 +1000
commita918c60c378b575ca52ebcfae977056b8bc5a4de (patch)
tree6ca3ec8882bea8a286cdc4726283a031ea31dde1 /django
parent99f3a65c730f643d35d959aa9a693101b2d21efd (diff)
[1.7.x] Fixed #23091: CreateModel and AddField were clashing with deferred SQL
Diffstat (limited to 'django')
-rw-r--r--django/db/backends/schema.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/django/db/backends/schema.py b/django/db/backends/schema.py
index c9052e29d8..b10412751d 100644
--- a/django/db/backends/schema.py
+++ b/django/db/backends/schema.py
@@ -546,6 +546,7 @@ class BaseDatabaseSchemaEditor(object):
}
)
# Drop any FK constraints, we'll remake them later
+ fks_dropped = set()
if old_field.rel:
fk_names = self._constraint_names(model, [old_field.column], foreign_key=True)
if strict and len(fk_names) != 1:
@@ -555,6 +556,7 @@ class BaseDatabaseSchemaEditor(object):
old_field.column,
))
for fk_name in fk_names:
+ fks_dropped.add((old_field.column,))
self.execute(
self.sql_delete_fk % {
"table": self.quote_name(model._meta.db_table),
@@ -737,7 +739,7 @@ class BaseDatabaseSchemaEditor(object):
}
)
# Does it have a foreign key?
- if new_field.rel:
+ if new_field.rel and fks_dropped:
to_table = new_field.rel.to._meta.db_table
to_column = new_field.rel.get_related_field().column
self.execute(