【问题标题】:ValueError: day is out of range for month on south schemamigration and datamigrationValueError:南模式迁移和数据迁移的日期超出月份的范围
【发布时间】:2015-07-01 15:40:29
【问题描述】:

TL;DR:有没有人见过架构迁移和数据迁移失败,南 v. 0.8.4 引发 ValueError: day is out of range for month?

我正在开发一个相当大的应用程序,该应用程序有很多开发人员同时工作 - 所以这可能是一件更复杂的事情,而且我在源代码方面可以分享的内容有限,因此,为这个粗俗的问题向所有人道歉。我需要更新一个 CharField 来增加它的最大长度,就像昨天我跑的一样:

python manage.py schemamigration <appname> update_char_field_ length --auto

虽然昨天创建了相关表,但今天我得到:

ValueError: day is out of range for month

根本没有追溯信息。

所以,为了咯咯笑,我跑了... datamigration &lt;appname&gt; test --stdout 并得到了同样的结果。我想知道以前是否有人遇到过这种情况,或者如果没有,是否有人知道让南方的数据迁移更详细地操作的方法,以便我可以更快地在源代码中追踪它?

奇怪的是,我已经将 git 中的更改回滚到几天前,并从头开始重新加载数据库快照,但仍然出现错误。

【问题讨论】:

    标签: python django django-south


    【解决方案1】:

    这实际上可能与您的代码本身没有关系,而与今天的日期有关!某处你试图得到一个不存在的日期。

    一个例子是,如果某处有逻辑可以获取上个月的最后一天,并且代码正在寻找 6 月 31 日,但它不存在。

    如果无法共享代码,就不可能看到发生了什么,但希望这能指引您正确的方向。

    【讨论】:

    • 我想我的困惑是,当我尝试应用迁移时,不会出现这种错误,而不是在我尝试创建它时?跨度>
    【解决方案2】:

    结束这个问题 - 对于任何可能会看到这个问题的人来说,它确实与它是本月的第一天这一事实有关。问题存在于生成迁移文件时填充默认值的函数之一,这只是挖掘源代码直到找到它...

    【讨论】:

      猜你喜欢
      • 2023-03-12
      • 2018-07-01
      • 2017-07-29
      • 2017-07-29
      • 2012-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多