﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
23100	Applying migrations fails when adding a ForeignKey to swappable user model after initial migration	Mattias Linnap	Andrew Godwin	"./manage.py migrate fails with `ValueError: Lookup failed for model referenced by field foo.A.owner: accounts.EmailUser` or similar when a ForeignKey to a swapped out user model is added '''after the initial migration'''.

Note that both making the migration and applying it work if the ForeignKey to the swappable user model is added in the very first initial migration, but not if it is added later.

I've tested this on both the 1.7 RC1 version, and the latest github checkout of branch ""stable/1.7.x"".

Steps to reproduce:
1. Create a swappable user model, add it to settings.py, create and run migrations.
2. Create a new model in a new app. Do not give it a reference to the user model.
3. Add a ForeignKey from the new model to the custom user model.
4. Run makemigrations. This works.
5. Run migrate. This fails.

Workaround:
1. Add `migrations.swappable_dependency(settings.AUTH_USER_MODEL),` to the list of dependencies of the failing migration by hand.

Initial investigation:
Swappable user ForeignKeys are referenced as `('owner', models.ForeignKey(to=settings.AUTH_USER_MODEL)),` in the migration scripts.

It seems that if the ForeignKey is added in the initial migration of a new app, then dependencies are correctly added:
{{{
dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]
}}}

But if the ForeignKey is added in a later migration, then the initial migration's dependencies are empty, and the second migration's only dependency is:
{{{
dependencies = [
        ('foo', '0001_initial'),
    ]
}}}"	Bug	closed	Migrations	1.7-rc-2	Release blocker	fixed		Andrew Godwin	Unreviewed	0	0	0	0	0	0
