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
不存在。为什么是这样? :(
答案 0 :(得分:3)
我取消注释并尝试进行架构迁移并再次迁移,确实如此 现在吐出相同的错误。
您是否删除了添加新字段后创建的迁移?如果没有,那么运行migrate将继续尝试运行此迁移。既然你说它第一次没能运行,它将始终无法运行,除非它被纠正或删除。
如果第一次迁移确实无法运行,您可以尝试删除它(以及您可能已创建的任何后续迁移),然后重新创建它。
在尝试此操作之前,您可以发布更完整的回溯,以便在运行迁移时发布错误。您可能认为南方认为数据库的状态与实际情况之间存在不匹配,但如果没有更多信息,则很难确定。