gpt4 book ai didi

Django 1.3 - BooleanField 到 DateTimeField 迁移失败

转载 作者:行者123 更新时间:2023-11-29 12:21:56 28 4
gpt4 key购买 nike

在 Postgres 9.1 上使用 Django 1.3。

我的任务是将两个旧的 bool 字段 pulledmail_report 迁移到时间戳。

在尝试迁移时,我收到以下错误,我不确定如何绕过手动删除数据库中的非 Null 约束以允许我将所有记录转换为 null。django.db.utils.DatabaseError: column "pulled"cannot be cast to type timestamp with time zone

任何不涉及我手动修改我们的实时数据库的洞察力都将不胜感激。

模型声明更改:

     # Reporting Checked Flags
# pulled => Object has been processed through order_picklist
- pulled = models.BooleanField(default=False)
+ pulled = models.DateTimeField(blank=True, null=True, default=None)
# mail_report => Object has been processed through report_mailing_list
- mail_report = models.BooleanField(default=False)
+ mail_report = models.DateTimeField(blank=True, null=True, default=None)

最佳答案

你应该阅读 the Data Migration section in the South's docs .在那里,他们会教您如何将纯文本密码更改为散列密码。为此,他们需要保留当前密码的值并进行转换。

我的建议是像这样一步一步地进行迁移:

  1. 创建新的 datetime 列,名称为:pulled2mail_report2
  2. 创建数据迁移以根据各自列 pulledmail_report 中的 bool 值填充此列
  3. 创建另一个迁移以删除 bool 列 pulledmail_report
  4. 创建最后一次迁移,将 pulled2mail_report2 重命名为 pulledmail_report

希望这个大纲和the tutorials在文档中会有所帮助!

关于Django 1.3 - BooleanField 到 DateTimeField 迁移失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17776796/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com