使用South / Django,我遇到了一个问题,我正在尝试为数据库中现有行的模型添加 UNIQUE
和 NOT NULL
列 . South提示我为列指定默认值,因为它是 NOT NULL
. 但由于它也有 UNIQUE
约束,我可以't add a default to the field in models.py, nor can I specify a one-off value because it'在所有行上都是相同的 .
我能想到解决这个问题的唯一方法是首先创建一个可为空的列,应用迁移,运行脚本以使用该列中的唯一值填充现有行,然后添加另一个迁移以将 UNIQUE
约束添加到该列柱 .
但有没有更好的方法来完成同样的事情?
1 回答
是的,这是你应该采取的方法 . 您应该为此进行schemamigration - > datamigration - > schemamigration . 不幸的是,如果在SQL中无法做到这一点,南方也无法做到这一点 .