0
点赞
收藏
分享

微信扫一扫

解决Django migrate: Your models in app(s): ‘Mymodelclassname‘ have changes that are not yet reflected

这是一个“小”问题,但稍不注意会很令人困扰。在Django项目根目录下执行命令

$python manage.py makemigrations

没有异常信息,但是在最终的migrate操作时出现错误提示(红色):

$python manage.py migrate

删除所有相关缓存,包括 __pycache__和migrations文件夹里的关联文件。重新执行以上命令,结果出现另外的错误提示(灰色):

 Myappname和mymodelclassname确认没有问题。猜测很可能是多次修改Myappname中的models.py文件,且反复执行makemigrations和migrate操作,导致Django缓存不一致。上述系列操作中,已确认删除所有__pycache__缓存和migrations缓存。似乎“找茬”游戏中陷入僵局一样。

但是,还有唯一一个存在数据库缓存的,就是数据库文件本身——db.sqlite3。在动手处理数据库文件前,首先记得备份,将该文件重命名为: db.sqlite4。重新执行makemigrations和migrate操作:

$python manage.py makemigrations
$python manage.py migrate

结果通过:

问题解决了!剩下的就是空数据库和转移旧数据库的问题。

举报

相关推荐

0 条评论