我可以更改模型字段的类型吗?

时间:2014-07-29 07:00:57

标签: python django postgresql django-models django-south

说,我有一个这个领域的模型:

is_retired = models.NullBooleanField()

从未为数据库中的任何记录设置过,因此我认为此字段的所有记录都将为空值。

现在想将其更改为字符串字段:

is_retired = models.CharField(max_length=50)  

我正在使用Django 1.7并且运行makemigrations似乎很好,说了一些关于改变字段的事情。但是,当我实际运行migrate命令时,它失败并带有

django.db.utils.IntegrityError: column "is_retired" contains null values

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

如果要启用null / empty值,请将其更改为:

is_retired = models.CharField(max_length=50, null=True, blank=True)

您可能还想在另一次迁移中将空值更改为空字符串('')。