嗨,我正在尝试改变我目前的django项目架构,数据迁移工具是南方的。 django版本是1.6.9。
这是一个现有的数据库,所以我不想搞砸我的历史数据。
我想要改变的是使一个空白=真正的字段非空(空白=假) 这是我的模特课:
class Post(DraftableModel, EditTrackingModel):
title = models.CharField(max_length=120,
verbose_name='headline')
description = models.CharField(max_length=260,
blank=True,
verbose_name='lead-in',
help_text="260 character limit")
/*rest of the code*/
我想将描述从models.CharField(blank=True)
更改为models.CharField(blank=False)
,这是默认的空白值
考虑到我的数据库的存在,我的一些旧Post模型确实有空描述。
迁移和更改数据库架构后,我的数据库是否会损坏?
答案 0 :(得分:1)
当您尝试迁移时,django会警告您这些空字段。所以你几乎没有选择。
您可以在模型中添加默认值,例如default="Some Default Value"
,django会为迁移时的所有空字段选择默认值。
您可以发送迁移请求,在终端上,django会要求您添加一个一次性值以添加到所有空字段中。
此外,您可以编辑迁移文件,并根据您考虑的条件为这些空字段添加不同的值。
您可以编写一个函数来检查退出行的所有空字段,并根据某些条件添加一些数据。
我强烈建议先备份。无论变化有多小或编码有多好。