django模型修改后更新报错表不存在的的解决办法

起因:我直接用drop table uploadproduction';的命令删除了django的models.py中建立的表uploadproduction,其中score是我的app名称

之后用:

python manage.py makemigrations score

python manage.py migrate socre

报错:

django.db.utils.ProgrammingError: (1146, "Table 'experiment.uploadproduction' doesn't exist")

 

后来解决这个问题的方法是:

先执行:

python manage.py migrate socre --fake

然后有提示,输入yes

Type 'yes' to continue, or 'no' to cancel: yes

最后分别执行:

python manage.py makemigrations score

python manage.py migrate socre

就没有报错了

 

添加了一个字段,后来报错:

Django - OperationalError: (1054, “Unknown column 'xx' in 'field list'”)


解决办法:进入到你的app所在的migrations下面,删除所有0001,0002这种打头的文件,然后,把你的models.py修改的那张表先还原为未添加字段的结构,执行一遍:

python3 manage.py makemigrations

python3 manage.py migrate

然后修改表结构,添加你的字段,再执行下面的命令

python3 manage.py makemigrations

python3 manage.py migrate


这里我用的是python3.4所以这里的命令是python3,如果您用的是python 2.x,则直接把上述命令中的python3 换成python 就可以

你可能感兴趣的:(django,models.py)