【问题标题】:Change Django model column default using South使用 South 更改 Django 模型列默认值
【发布时间】:2011-12-19 07:08:14
【问题描述】:

我将 South 与 Postgresql DB 一起用于 Django 项目。

有一个模型字段,我想更改默认值以便继续前进。我不需要影响以前的记录。只是新记录。

我需要为此进行迁移,还是只是更改模型?

旧字段详细信息:

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)

(模型名称为“页面”)

【问题讨论】:

    标签: python django django-south


    【解决方案1】:

    您应该运行迁移。每当您对模型进行更改时,无论多么微不足道,您都应该创建一个模式迁移,以便您可以前后移动到任何时间点,而无需进行任何“神奇”的编辑。

    【讨论】:

    • Django 不处理数据库级别的默认值。
    • 你是对的。我删除了答案的错误部分。
    • @Jordan 当我运行迁移(“python manage.py schemamigration page --auto”)时,它说“似乎没有任何改变”
    • @Brenden:很遗憾它这样做了。好吧,只要您处于源代码控制之下,那么您应该没问题,尽管 South 没有为您跟踪这有点令人失望,即使没有实际的数据库更改。
    猜你喜欢
    • 2014-05-16
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 2013-05-22
    • 2018-10-22
    • 2013-03-15
    • 2014-11-06
    • 2016-03-17
    相关资源
    最近更新 更多