В моей модели Django У меня было поле, как этот (упрощенно):Джанго сбой миграции на изменение to_field
category = models.ForeignKey(EnumValue, to_field='code', related_name='+', verbose_name="Kategorie", db_column='Kategorie')
Затем я удалил to_field аргумент, чтобы преобразовать внешний ключ к одному, что указывает на основной ключ.
Миграция Django создала простой AlterField для этого изменения и, похоже, не изменяет внешний ключ или не корректно переводит существующие данные. В любом случае, я получаю сообщение об ошибке, при применении миграции:
pymysql.err.IntegrityError: (1452, 'Cannot add or update a child row: a foreign key constraint fails
Я не могу найти ничего об этом конкретном случае, в Интернете. Я бы сказал, что это ошибка миграции Django. Вы согласны? Знаете ли вы обходное решение для этого?
Что произойдет, если вы удалите связанное имя = '+'? Похоже, это помешало бы FK указывать на PK родительской модели. Кроме того, похоже, что ошибка была усечена - она должна сказать, какие столбцы потерпели неудачу, что было бы полезно. – Charlie
Вы смогли это решить? Я столкнулся с той же проблемой. В postgres недопустимы недопустимые ограничения (по-прежнему указывайте на старое поле, на которое делается ссылка). – Salvia
@ Salvia: Я ответил на мой вопрос, пожалуйста, смотрите ниже. –