django的数据库操作中应该注意的一件事情
2019-01-14 本文已影响0人
毅巍奇诚
今天把前几天写的一些代码放到服务器上去,运行migrate的时候出现以下错误
Your models have changes that are not yet reflected in a migration, and so won't be applied.
Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them
说是model有改动,要重新生成migrations,但是我本地是没有这个提示的,在服务器上运行makemigrations
Migration xxx.0002_auto_20190111_1531 is applied before its dependency xxx.0001_squashed_0003_auto_20181230_1509 on database 'default'.
出现以上错误
那是因为我之前在本地运行过了migrate,然后又squashmigrations了,这样操作后又把migrations文件上传到了服务器,服务器上要运行新的migrations,但是有几个步骤是在压缩文件里的,导致错误。
总结
以后开发过程中修改了model后,makemigrations文件放到版本控制里,要在确保开发环境和生产环境都运行过migrate后,才能去squashmigrations这些已进行过迁移操作的migrations文件,否则还是不要去随便压缩