模型更改后如何迁移django数据库?

how to migrate django database after model change?

我有型号 M1。它有一个 IntegerField 类型的字段 F1。 我创建了一些项目并用数字填充了它们的 F1。

然后我创建了新的模型M2 并将F1 更改为M2 的ForeignKey。 makemigrations 工作正常。 但是 migrate 不起作用——因为它找不到与旧 F1 int 值对应的 M2 项。 此外,我无法通过 shell 删除 M1 项 - 尝试获取 Objects.all() 会导致相同的错误。

如何在不刷新数据库的情况下删除 M1 的“有问题的”项目?

How can I delete "problematic" items of M1 without flushing database?

我建议将此作为迁移的一部分,使用 RunPython operation。 IE。您应该在 F1 更改字段类型

之前手动编辑 Django 生成的迁移并插入删除这些“有问题”对象的 RunPython 操作