使用South更改Django模型列的默认值

3

我正在为一个Django项目使用带有Postgresql数据库的South。

有一个模型字段,我想要改变它的默认值。我只需要改变新纪录的值,不需要影响之前的记录。

我需要进行迁移吗,还是只需要更改模型即可?

旧字段详细信息:

background_style = models.CharField(max_length=1, choices=BACKGROUND_STYLE, default=BackgroundStyleCode.CENTERED)

新字段详细信息:

background_style = models.CharField(max_length=1, choices=BACKGROUND_STYLE, default=BackgroundStyleCode.STRETCHED)

(该模型名称为“Page”)

1个回答

0

你应该运行迁移。无论你对模型进行多么微小的更改,都应该创建一个模式迁移,以便你可以在任何时间点向前或向后移动,而不需要进行任何“神奇”的编辑。


5
Django 在数据库层面上不处理默认值。 - Michael Mior
你说得对。我已经移除了我回答中的错误部分。 - Jordan
@Jordan 当我运行迁移(“python manage.py schemamigration page --auto”)时,它会显示“似乎没有任何更改”。 - Brenden
@Brenden:这真是太遗憾了。只要你在源代码控制下,那么应该没问题,尽管South不会为你跟踪这一点有点令人失望,即使没有实际的数据库更改。 - Jordan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接