问题
很多情况下,因为app的models.py的文件内容有误,但是通过python manage.py check检查不出来时,当执行python manage.py migrate同步数据库时却报错,后续再修改models.py的内容,然后反复执行python manage.py makemigrations和python manage.py migrate都会报错。原因是因为python manage.py makemigrations是在myapp/migrations目录下生成.py文件,python manage.py migrate是根据这些生成的.py文件写入数据库。在python manage.py migrate执行报错后,就算后面讲models.py改对之后。python manage.py migrate依然会根据之前生成的错误的.py文件往数据库中同步数据,所以依然报错
解决方法
就是将执行python manage.py migrate同步数据库前一次执行python manage.py makemigrations时生成的文件及之后所有的文件删除即可,然后修改models.py,再执行makemigrations/migrate即可。