Django中数据库表的删除和重建的正确方法和问题的解决

时间:2024-04-07 14:00:29

 

今天因为需要为一个Django中已经存在的model类添加元数据,所以直接在db.sqlite3中删除了该model类的映射表,但是在重新迁移的时候出现了问题:(出现了如下情况)

(后文有Django中删除和重建数据库中关于models类的映射数据库表的正确方法)

Django中数据库表的删除和重建的正确方法和问题的解决

查看了网上其他博客后:大多建议删除 django_migrations表并删除migration目录下的0001_initial.py(并不能解决问题):

Django中数据库表的删除和重建的正确方法和问题的解决Django中数据库表的删除和重建的正确方法和问题的解决

因为当你重新迁移是,并不能成功的映射新的数据库表:

Django中数据库表的删除和重建的正确方法和问题的解决

这里只有删除main下除sqlite_master和sqlite_sequence表下的其他表然后重新执行

python manage.py makemigrations
python manage.py migrate
才能迁移成功:

Django中数据库表的删除和重建的正确方法和问题的解决


Django中删除和重建数据库中关于models类的映射数据库表的正确方法:

在Django中删除models类的映射数据库表需要在models.py中剪切或删除对应的models类:然后在控制台中执行:

python manage.py makemigrations(Django会重新对照你的models类与数据库中的映射表,如果你的model类被删除,则Django会生成一个删除迁移)
python manage.py migrate(执行删除迁移,删除数据库中对应的model映射表)

 

Django中数据库表的删除和重建的正确方法和问题的解决