【问题描述】
笔者在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”
报错原因也是因为脚本文件要执行删除数据表A,而笔者的数据表B却使用了表A作为外键,所以删除失败。
【解决方法】
在脚本文件的开头加入“set foreign_key_checks=0;”,并在脚本文件的末尾加入“set foreign_key_checks=;”。这两句分别表示关闭和开启MySQL的外键约束。