gpt4 book ai didi

Django 迁移引用了已删除的模块

转载 作者:行者123 更新时间:2023-12-02 02:18:23 25 4
gpt4 key购买 nike

我在 my_app/models/foo.py 中定义了一个名为 FooModelModel

删除 foo.py 后,运行 Django (1.7) 迁移会引发错误,因为旧迁移文件 import foo.py (import myapp.models. foo.FooModel)。

我该如何解决这个问题?

当模型具有带有 upload_to 参数的 ImageField 时,就会发生这种情况。

最佳答案

有两种情况:

  1. 您搬家了 FooModel其他地方,然后编辑所有迁移文件以反射(reflect)该移动。

  2. 您删除了FooModel ,在这种情况下,请按照下列步骤操作:

    • 输入FooModel回到原来的地方。
    • 确保没有引用 FooModel代码中的其他地方。
    • 运行./manage.py makemigrations my_app
    • 运行./manage.py squashmigrations my_app <migration created with the previous comand> — 参见doc了解有关压缩迁移的更多信息。
    • 对任何引用 FooModel 的应用重复前面的两个步骤在它的迁徙中。
    • 删除 FooModel以及在确保一切正常后的过时迁移文件。

这应该有效,因为 FooModel未从任何其他模型引用,因此在压缩迁移文件时应将其从迁移文件中删除。

但是,请注意,压缩迁移并不是一个简单的操作,并且可能会产生后果,最好将模型保留在代码库中而不使用它。

注意:在这种情况下,相关对象是 Django 模型,但这适用于迁移文件引用的任何类、函数或模块。

关于Django 迁移引用了已删除的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29965391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com