今天因为需要为一个Django中已经存在的model类添加元数据,所以直接在db.sqlite3中删除了该model类的映射表,但是在重新迁移的时候出现了问题:(出现了如下情况)
(后文有Django中删除和重建数据库中关于models类的映射数据库表的正确方法)
查看了网上其他博客后:大多建议删除 django_migrations表并删除migration目录下的0001_initial.py(并不能解决问题):
因为当你重新迁移是,并不能成功的映射新的数据库表:
这里只有删除main下除sqlite_master和sqlite_sequence表下的其他表然后重新执行
python manage.py makemigrations
python manage.py migrate
才能迁移成功:
Django中删除和重建数据库中关于models类的映射数据库表的正确方法:
在Django中删除models类的映射数据库表需要在models.py中剪切或删除对应的models类:然后在控制台中执行:
python manage.py makemigrations(Django会重新对照你的models类与数据库中的映射表,如果你的model类被删除,则Django会生成一个删除迁移)
python manage.py migrate(执行删除迁移,删除数据库中对应的model映射表)