一旦生成成功,你就算删除数据表,重新迁移,也不会生成新的迁移文件。
而老的迁移文件不会执行第二次,所以需要把老的迁移文件删除,再进行迁移即可。
这里有一个问题,有时候明明已经删除迁移文件了,而且执行
python manage.py makemigrations
语句也生成了迁移文件,但是执行迁移的时候却提示不需要迁移。
Running migrations:
No migrations to apply.
是因为,只删除了migrations文件夹下的迁移文件,但是migrations文件下,还藏有一个__pycache__文件夹,需要一起将该文件夹下的文件删除即可。
这个文件夹有时候在pycharm下是看不到的,所以会漏删。
可以看到并没有__pycache__文件夹
但是实际上打开该文件夹,所以在pycharm没看到时,需要到文件夹里面去删除
而再删除以后,还是没办法迁移。
原因是,还差删除django_migrations表里的迁移数据,如果不删除django也会认为你已经迁移过了。