迁移Django / MySQL外键以接受空值

时间:2012-01-27 17:38:15

标签: mysql django

设置Django / MySQL。有一个模型,调查,目前看起来像......

class Survey(models.Model):

    company = models.ForeignKey('Company')

我想设置模型,因此公司可以是空值:

    company = models.ForeignKey('Company', blank = True, null = True)

但是,我不确定我应该在MySQL端做什么来确保所有现有的约束/模型。我是否只是通过控制台更改列以接受空值?它是一个实时数据库,因此我不想进行太多实验(我的开发环境使用SqlLite3)。

1 个答案:

答案 0 :(得分:0)

更新您的模型,以便blank=True, null=True。然后在生产服务器上运行sqlall命令(以便它为MySQL提供输出)

./manage.py sqlall myapp

查找create table语句这将显示survey_id字段的新定义。

CREATE TABLE `myapp_survey` (
...
`survey_id` integer
...

然后,在数据库shell中,使用ALTER TABLE命令修改列以接受空值。

ALTER TABLE myapp_survey MODIFY company integer;

小心,并考虑是否要在开发环境中运行MySQL。您是否真的希望将Stack Overflow中的命令复制并粘贴到您的实时数据库外壳中而不先测试它们?