django南迁移问题

时间:2013-03-12 03:17:18

标签: python django migration django-south

我真的被困在这里了。我有一个模型,我现在正在迁移,直到现在。但是今天我添加了新字段,然后我做了schemamigration app --auto,然后它找到了新添加的字段,但是当我运行migrate app时,字段newfield不存在。我不明白为什么。我取消注释并尝试进行模式迁移并再次迁移,现在它正在吐出相同的错误。我错了什么,现在该怎么办?我想对这种情况采取固定步骤:(

感谢您的帮助

编辑:

class User(models.Model):
  registerdate = models.CharField(max_length=400,default='')
  vorname = models.CharField(max_length=100,default='')
  nachname = models.CharField(max_length=100,default='')
  plz = models.CharField(max_length=10,default='')  <------------- this field i added
  land = models.CharField(max_length=100,default='')

错误说:

the following sql statement failed: ALTER TABLE home_user DROP COLUMN plz CASCADE;

但现在,我已将此字段取消注释,如果我尝试迁移,则会说:Relation PLZ的列USER不存在。为什么是这样? :(

1 个答案:

答案 0 :(得分:3)

  

我取消注释并尝试进行架构迁移并再次迁移,确实如此   现在吐出相同的错误。

您是否删除了添加新字段后创建的迁移?如果没有,那么运行migrate将继续尝试运行此迁移。既然你说它第一次没能运行,它将始终无法运行,除非它被纠正或删除。

如果第一次迁移确实无法运行,您可以尝试删除它(以及您可能已创建的任何后续迁移),然后重新创建它。

在尝试此操作之前,您可以发布更完整的回溯,以便在运行迁移时发布错误。您可能认为南方认为数据库的状态与实际情况之间存在不匹配,但如果没有更多信息,则很难确定。