Как исправить рассинхронизацию миграции Django с уникальным ограничением
У меня была модель, которая выглядела примерно так:
class FooBar(models.Model):
foo = models.ForeignKey(Foo, on_delete=models.CASCADE)
bar = models.ForeignKey(Bar, on_delete=models.CASCADE)
<some other fields>
class Meta:
constraints = [
models.UniqueConstraint(fields=['foo', 'bar'], name='foobar_candidate_key')
]
Я удалил поля foo
и bar
, сделал миграции и запустил миграции. При этом я не удалил класс Meta. Я заметил, что забыл удалить класс Meta и удалил его. Затем я снова создал миграции и попытался выполнить миграцию. Я получил ошибку типа:
django.db.utils.OperationalError: (1091, "Can't DROP 'foobar_candidate_key'; check that column/key exists")
Как я могу исправить? Я рассматривал возможность использования --fake, но я беспокоюсь, что ограничение все еще находится в ограничениях базы данных и мне нужно его удалить?