Django生成迁移文件报错django.db.migrations.exceptions.NodeNotFoundError: Migration orders.0001_initial......

【问题描述】

笔者在django中执行“python manage.py makemigrations”时报错“django.db.migrations.exceptions.NodeNotFoundError: Migration orders.0001_initial dependencies reference nonexistent parent node......”,

根据报错可知是因为要生成迁移文件的这个表A与另一个表B有依赖关系,笔者的表B是表A的外键,而笔者的表B已经删除了,所以无法生成表A的迁移文件,因为表A要依赖于表B。

【解决方法】

先在django中生成表B的迁移文件,再执行表B的迁移,最后再生成表A的迁移文件,执行表A的迁移。

——————————————————— 举一反三 ——————————————————

【问题描述】

笔者已经新建了相关的数据表A,想通过脚本文件将数据导入到数据库,结果报错“Cannot delete or update a parent row: a foreign key constraint fails”

Django生成迁移文件报错django.db.migrations.exceptions.NodeNotFoundError: Migration orders.0001_initial......_第1张图片

报错原因也是因为脚本文件要执行删除数据表A,而笔者的数据表B却使用了表A作为外键,所以删除失败。

【解决方法】

 在脚本文件的开头加入“set foreign_key_checks=0;”,并在脚本文件的末尾加入“set foreign_key_checks=;”。这两句分别表示关闭和开启MySQL的外键约束。

Django生成迁移文件报错django.db.migrations.exceptions.NodeNotFoundError: Migration orders.0001_initial......_第2张图片

 

你可能感兴趣的:(django,数据库,python,mysql)