{{{
class MyModel(models.Model):
fka = models.ForeignKey(SomethingA, ...)
date = models.DateField()
class Meta:
unique_together = ('fka', 'date')
}}}
models.py after:
{{{
class MyModel(models.Model):
fkb = models.ForeignKey(SomethingB, ...)
date = models.DateField()
class Meta:
unique_together = ('fkb', 'date')
}}}
This can result in an automatically created migration (using `manage.py
migrate`) that looks like this:
{{{
operations = [
migrations.AddField(
model_name='mymodel',
name='fkb',
field=models.ForeignKey(... to='myapp.somethingb'),
),
migrations.RemoveField(
model_name='mymodel',
name='fka',
),
migrations.AlterUniqueTogether(
name='mymodel',
unique_together={('fkb', 'date')},
),
]
}}}
This migration fails, because `AlterUniqueTogether` needs to come before
`RemoveField`, as it references `fka`.
--
Ticket URL: <https://code.djangoproject.com/ticket/28916>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* component: Uncategorized => Migrations
--
Ticket URL: <https://code.djangoproject.com/ticket/28916#comment:1>
Old description:
> models.py before:
>
> models.py after:
>
New description:
models.py before:
{{{
class MyModel(models.Model):
fka = models.ForeignKey(SomethingA, ...)
date = models.DateField()
class Meta:
unique_together = ('fka', 'date')
}}}
models.py after:
{{{
class MyModel(models.Model):
fkb = models.ForeignKey(SomethingB, ...)
date = models.DateField()
class Meta:
unique_together = ('fkb', 'date')
}}}
This can result in an automatically created migration (using `manage.py
makemigrations`) that looks like this:
{{{
operations = [
migrations.AddField(
model_name='mymodel',
name='fkb',
field=models.ForeignKey(... to='myapp.somethingb'),
),
migrations.RemoveField(
model_name='mymodel',
name='fka',
),
migrations.AlterUniqueTogether(
name='mymodel',
unique_together={('fkb', 'date')},
),
]
}}}
This migration fails, because `AlterUniqueTogether` needs to come before
`RemoveField`, as it references `fka`. This is hard to debug, and can only
be fixed by manually reordering the migration operations.
--
--
Ticket URL: <https://code.djangoproject.com/ticket/28916#comment:2>
* owner: nobody => Junji Wei
* status: new => assigned
--
Ticket URL: <https://code.djangoproject.com/ticket/28916#comment:3>
* status: assigned => new
* owner: Junji Wei => (none)
--
Ticket URL: <https://code.djangoproject.com/ticket/28916#comment:4>
* status: new => closed
* resolution: => duplicate
Comment:
I think this is a duplicate of #28862.
--
Ticket URL: <https://code.djangoproject.com/ticket/28916#comment:5>