Миграция внешнего ключа с использованием django south - PullRequest
1 голос
/ 27 марта 2012

Я изменил ссылку на внешний ключ без изменения имени поля, теперь у меня есть 2 ограничения на одну и ту же точку поля для разных таблиц. Моя модель была такой

class Activity(models.Model):
    ...
    source = models.ForeignKey(FSObject)

и стал

class Activity(models.Model):
    ...
    source = models.ForeignKey(FreezedRef)

А теперь я получаю это сообщение при запуске моих тестов:

IntegrityError: (1452, 'Cannot add or update a child row: a foreign key constraint fails (`test_tcf_api`.`storage_activity`, CONSTRAINT `source_id_refs_id_fc96b4b044ceb88` FOREIGN KEY (`source_id`) REFERENCES `storage_fsobject` (`id`))')

Как мне удалить эту старую ссылку, видимо, Саут ее пропустил.

Ответы [ 2 ]

0 голосов
/ 28 марта 2012

Обновили ли вы что-нибудь еще в той же миграции? Они работали или ломались? Я спрашиваю только потому, что у меня никогда не было проблем, когда Юг выполнял миграцию - обычно это вызывает исключение во время этого процесса, если что-то не так.

0 голосов
/ 27 марта 2012
  1. Прекратите использовать плохие базы данных, такие как MySQL, которые создают такие внутренние проблемы из-за того, что они являются своего рода базой данных своего рода (извините, не смог устоять, но это правда)
  2. ALTER TABLE tbl_name DROP FOREIGN KEY fk_symbol; Прямо из mysqlдокументы: http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html
...