使用django南方的外键迁移

时间:2012-03-27 19:16:55

标签: python mysql django django-south

我更改了外键的引用而没有更改字段的名称,现在我对同一字段指向不同的表有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 :(得分:0)

您是否在同一次迁移中更新了其他内容?他们工作还是休息?我只是问,因为我在运行迁移时从来没有让South破解任何东西 - 如果出现问题,通常会在该过程中引发异常。

答案 1 :(得分:-1)

  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