微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

忽略 django 迁移的无效外国?

如何解决忽略 django 迁移的无效外国?

我正在将一个应用程序从旧的数据库系统迁移到 django。我已经导入了一堆遗留数据。我使用脚本将旧系统中的表模式转换为 Django 模型,因为它有很多表。然后我使用另一个脚本将旧数据库内容写入 Django 固定装置,然后我将其导入。一切正常,数据在视图等中提供。

但是,我现在注意到旧系统中的某些 ForeignKey 没有正确识别为 FK,而只是作为 Char/Int 字段放入 djando 模型中。所以我将一个字段从 IntegerField 更新为 ForeignKey,但这是遗留数据,我遇到了以下问题:

django.db.utils.IntegrityError: The row in table 'pickings_detpick' with primary key '17170' has an invalid foreign key: pickings_detpick.fk_ent_id contains a value '30223' that does not have a corresponding value in pickings_entpick.id.

所以基本上,有许多(不确定有多少)外键引用指向源数据中实际上不存在的对象(无论出于何种原因,我不太了解保留系统)。

有没有一种方法可以简单地告诉 Django 忽略这些并将它们设置为 null 或其他什么?还是我真的必须梳理数据并修复它们?

解决方法

不是一个长期的修复,而是关于让 ForeignKey 字段的约束滑动 the db_constraint 属性起作用(将其设置为 False)的狭隘问题。

在生产中不是一个好主意,底层数据仍然需要修复。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。