由于是第一次使用Django,甚至连migrate是什么都不清楚,经过初步了解,得知:
它是Django自动生成的代码,他会监控Models的变动,实现和数据库的同步。
大概就是自动构建的数据库查询用的代码,而且他是会随着Models的变动,自己迭代版本的。同时数据库里也会有一份记录。
那么问题就来了,如果本地的文件和数据库的记录不匹配就会出现各种奇葩问题,找不到xxx表,xxx列有问题……
这时,为了省心起见,应该删除数据库和本地的所有相关内容:
在项目根目录:
find --name m | xargs rm -rf
python manage.py makemigrations --empty app1
python manage.py makemigrations --empty app2
# .....
python manage.py migrate
然后在Django的默认数据库中,找到django开头的表,删掉。
就可以正常运行了