【问题标题】:South: run a migration for a column that is both unique and not nullSouth:对唯一且不为空的列运行迁移
【发布时间】:2011-11-05 18:19:51
【问题描述】:

使用 South/Django,我遇到了一个问题,我试图为数据库中现有行的模型添加 UNIQUENOT NULL 列。 South 提示我为该列指定默认值,因为它是 NOT NULL。但由于它也有UNIQUE 约束,我不能在models.py 中为字段添加默认值,也不能指定一次性值,因为它在所有行上都是相同的。

我能想到的解决此问题的唯一方法是首先创建一个可为空的列,应用迁移,运行脚本以使用该列中的唯一值填充现有行,然后添加另一个迁移以添加 @ 987654325@ 对该列的约束。

但是有没有更好的方法来完成同样的事情?

【问题讨论】:

    标签: python django django-models django-south


    【解决方案1】:

    是的,这是您应该采取的方法。您应该为此进行 schemamigration -> datamigration -> schemamigration。不幸的是,如果在 SQL 中没有办法做到这一点,南也不能做到。

    【讨论】:

      猜你喜欢
      • 2012-05-18
      • 1970-01-01
      • 2012-11-16
      • 2012-05-04
      • 2015-10-07
      • 2013-12-29
      • 2014-11-08
      • 2014-10-29
      • 2012-03-22
      相关资源
      最近更新 更多