天天看点

django项目中运行makemigrations迁移模型时一直报No changes detected解决方法问题背景解决方法

问题

运行python manage.py makemigrations时,一直无法识别app中的模型,一直报No changes detected

背景

第一次时迁移时运行成功,后面因为模块改变较大,直接把所有的表全删除了,然后把app/migrations目录中的内容也全清空了,试图重新迁移模型。以前都是采用这种方式,都没有问题,但今天碰到一删除后就再也无法识别自定义的模型了。

解决方法

  1. 按照网上说的解决方案,在app/migrations目录中创建__init__.py文件,重新运行python manage.py makemigrations,但问题依旧。(可能大部人通过这种办法能解决)
  2. 继续查找资料,浪费了很多时间,还尝试去看了源码。突然想到一个可能,会不会是手动创建的__init__.py文件有问题(编码什么的),于是从别的项目中复制了一个到app/migrations目录下,再次运行,问题成功解决!
# dengqingyong @ Deng-Mac in ~/PycharmProjects/yumen [19:36:15] 
$ python manage.py makemigrations
Migrations for 'user_center':
  user_center/migrations/0001_initial.py
    - Create model System
    - Create model User
    - Create model Role
    - Create model Resource