更新models字段

python manage.py makemigrat  Please select a fix:  1) Provide a one-off default now (will be set on all existing rows with a null value for this column)  2) Quit, and let me add a default in models.py-LMLPHP

出现的问题:

$ python manage.py makemigrations
None
You are trying to add a non-nullable field 'file_type' to filejinja without a default; we can't do that (the database needs something to populate existing rows).
Please select a fix:
) Provide a one-off default now (will be set on all existing rows with a null value for this column)
) Quit, and let me add a default in models.py
Select an option:

原因:

python manage.py makemigrat  Please select a fix:  1) Provide a one-off default now (will be set on all existing rows with a null value for this column)  2) Quit, and let me add a default in models.py-LMLPHP

之前数据表里面已经存在,如果添加,file_type需要默认值

解决:

方法1:

在model字段后面添加,

 blank=True, null=True
    file_type = models.CharField(verbose_name="文件type", max_length=, choices=(
('', "配置文件"),
('', "sls文件"),
), blank=True, null=True)

再执行

$ python manage.py makemigrations
None
Migrations for 'minions':
apps\minions\migrations\0011_filejinja_file_type.py
- Add field file_type to filejinja

python manage.py makemigrat  Please select a fix:  1) Provide a one-off default now (will be set on all existing rows with a null value for this column)  2) Quit, and let me add a default in models.py-LMLPHP

方法2:

数据库中找到django_migrations,该表对应,每次makemigrations的每次记录

python manage.py makemigrat  Please select a fix:  1) Provide a one-off default now (will be set on all existing rows with a null value for this column)  2) Quit, and let me add a default in models.py-LMLPHP

删除,生成的migrations

在删除你要更新的表。

python manage.py makemigrat  Please select a fix:  1) Provide a one-off default now (will be set on all existing rows with a null value for this column)  2) Quit, and let me add a default in models.py-LMLPHP

重新生成新的表

$ python manage.py makemigrations
None
Migrations for 'minions':
apps\minions\migrations\0010_filejinja.py
- Create model FileJinja liangshuo@zt- MINGW64 /f/11_goms/goms (master)
$ python manage.py migrate
None
Operations to perform:
Apply all migrations: admin, auth, contenttypes, minions, salt, sessions
Running migrations:
Applying minions.0010_filejinja... OK

python manage.py makemigrat  Please select a fix:  1) Provide a one-off default now (will be set on all existing rows with a null value for this column)  2) Quit, and let me add a default in models.py-LMLPHP

05-28 01:59