python manage.py makemigrat Please select a fix: 1) Provide a one-off default now (will be set on

Posted 不要被骄傲遮蔽了双眼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python manage.py makemigrat Please select a fix: 1) Provide a one-off default now (will be set on 相关的知识,希望对你有一定的参考价值。

更新models字段

 

 

出现的问题:

$ 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:
 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
Select an option:

 

原因:

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

 

 

 

解决:

方法1:

 在model字段后面添加,

 blank=True, null=True
    file_type = models.CharField(verbose_name="文件type", max_length=1, choices=(
        (\'1\', "配置文件"),
        (\'2\', "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

 

 

方法2:

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

 

 删除,生成的migrations

在删除你要更新的表。

 

 

重新生成新的表

$ python manage.py makemigrations
None
Migrations for \'minions\':
  apps\\minions\\migrations\\0010_filejinja.py
    - Create model FileJinja

liangshuo@zt-2013326 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 的主要内容,如果未能解决你的问题,请参考以下文章

django 和 python ./manage.py makemigrations 执行错误

python manage.py makemigrations 没有检测到变化?

python manage.py makemigrations No changes detected

Django 2.0教程 - 执行python3 manage.py makemigrations时出错

python manage.py makemigrations生成数据变化的问题

Django同步数据库(/manage.py makemigrations) 报错