summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Godwin <andrew@aeracode.org>2014-05-08 21:33:24 -0700
committerAndrew Godwin <andrew@aeracode.org>2014-05-08 21:34:57 -0700
commit4535dedc42b90b8f75576e48a12e2e63d4e93048 (patch)
tree605d925dd724e0bc4fc9f02e03f05db8c6cceca9
parentd2e96b5792367af5aa0140f7e2673d654bb266df (diff)
[1.7.x] Fixed #22563: Ignore AUTH_USER_MODEL errors in from_state
-rw-r--r--django/db/migrations/autodetector.py2
-rw-r--r--django/db/migrations/state.py16
2 files changed, 5 insertions, 13 deletions
diff --git a/django/db/migrations/autodetector.py b/django/db/migrations/autodetector.py
index 141e0ae1f3..cd6f724c75 100644
--- a/django/db/migrations/autodetector.py
+++ b/django/db/migrations/autodetector.py
@@ -50,7 +50,7 @@ class MigrationAutodetector(object):
"""
# We'll store migrations as lists by app names for now
self.migrations = {}
- old_apps = self.from_state.render()
+ old_apps = self.from_state.render(ignore_swappable=True)
new_apps = self.to_state.render()
# Prepare lists of old/new model keys that we care about
# (i.e. ignoring proxy ones and unmigrated ones)
diff --git a/django/db/migrations/state.py b/django/db/migrations/state.py
index 32a0b69a44..b5ce3e78c4 100644
--- a/django/db/migrations/state.py
+++ b/django/db/migrations/state.py
@@ -38,7 +38,7 @@ class ProjectState(object):
real_apps=self.real_apps,
)
- def render(self, include_real=None):
+ def render(self, include_real=None, ignore_swappable=False):
"Turns the project state into actual models in a new Apps"
if self.apps is None:
# Any apps in self.real_apps should have all their models included
@@ -75,23 +75,15 @@ class ProjectState(object):
try:
model = self.apps.get_model(lookup_model[0], lookup_model[1])
except LookupError:
- # If the lookup failed to something that looks like AUTH_USER_MODEL,
- # give a better error message about how you can't change it (#22563)
- extra_message = ""
- if "%s.%s" % (lookup_model[0], lookup_model[1]) == settings.AUTH_USER_MODEL:
- extra_message = (
- "\nThe missing model matches AUTH_USER_MODEL; if you've changed the value of this" +
- "\nsetting after making a migration, be aware that this is not supported. If you" +
- "\nchange AUTH_USER_MODEL you must delete and recreate migrations for its app."
- )
+ if "%s.%s" % (lookup_model[0], lookup_model[1]) == settings.AUTH_USER_MODEL and ignore_swappable:
+ continue
# Raise an error with a best-effort helpful message
# (only for the first issue). Error message should look like:
# "ValueError: Lookup failed for model referenced by
# field migrations.Book.author: migrations.Author"
- raise ValueError("Lookup failed for model referenced by field {field}: {model[0]}.{model[1]}{extra_message}".format(
+ raise ValueError("Lookup failed for model referenced by field {field}: {model[0]}.{model[1]}".format(
field=operations[0][1],
model=lookup_model,
- extra_message=extra_message,
))
else:
do_pending_lookups(model)