【问题标题】:django south migration issuedjango南迁移问题
【发布时间】:2013-03-12 03:17:18
【问题描述】:

我真的被困在这里了。我有一个模型,直到现在我都可以很好地迁移。但是今天我添加了新字段,然后我做了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;

但是现在,我没有注释这个字段,如果我尝试迁移,它会说:关系USER 的列PLZ 不存在。为什么是这样? :(

【问题讨论】:

  • 您可以在这里添加您对模型所做的更改(差异)吗?你能对你得到的错误(精确跟踪)做同样的事情吗?看来您做了正确的事情,因此拥有这些信息会有所帮助,以帮助您...
  • @catherine,我做到了,但同样的错误即将到来。
  • 如果您发布回溯,迁移文件的相关部分,您可能会获得更多帮助。另外,您取消注释了什么?!
  • @catherine,哦,我看到我新添加的列在 db 中并不存在。这是为什么?
  • 你评论了什么?

标签: python django migration django-south


【解决方案1】:

我取消注释并尝试架构迁移并再次迁移,它是 现在吐出同样的错误。

您是否在添加新字段后删除了您创建的迁移?如果不是,则运行 migrate 将继续尝试运行此迁移。既然你说它第一次运行失败,那么除非更正或删除它,否则它将一直运行失败。

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

不过,在尝试之前,发布更完整的运行迁移时遇到的错误的回溯会很有帮助。您可能在 south 认为的数据库状态与实际情况之间存在不匹配,但如果没有更多信息,很难确定。

【讨论】:

    猜你喜欢
    • 2011-04-03
    • 2012-06-05
    • 2014-06-22
    • 2011-09-28
    • 2014-02-21
    • 2014-12-21
    • 2021-11-20
    • 2011-10-26
    相关资源
    最近更新 更多