在Postgres 9.1上使用Django 1.3。
我的任务是将两个旧的bool字段pulled
和mail_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)
答案 0 :(得分:1)
您应该阅读the Data Migration
section in the South's docs。在那里,他们教你如何将纯文本密码更改为哈希密码。为此,他们需要保留当前密码的值并进行转换。
我的建议是一步一步地进行迁移,就像这样:
datetime
,pulled2
mail_report2
列
pulled
和mail_report
pulled
和mail_report
pulled2
和mail_report2
重命名为pulled
和mail_report
希望此大纲和文档中的the tutorials有用!