gpt4 book ai didi

django-models - 添加模型依赖项后删除应用程序引用

转载 作者:行者123 更新时间:2023-12-04 18:00:18 26 4
gpt4 key购买 nike

我有一个使用外部应用程序引用的 django 应用程序。我们不再需要此应用程序引用,因此我们要删除依赖项。我能够生成迁移以删除我们正在删除的应用程序中模型的外键,但我无法删除应用程序中的需求引用,因为它在早期的迁移中被引用。

有没有人有消除这样的应用程序要求的已知解决方案?

举个例子,假设我有一个具有以下模型的外部应用程序:

class ExternalInfo(models.Model):
random_field = CharField()

在您的项目应用程序中,您有一个客户记录:
class Customer(models.Model):
name = CharField()
external_info = ForegnKey(external_app.ExternalInfo, null=True)

应用程序的迁移 0001 在外部应用程序中创建模型的外键。 10 个月过去了,10 次迁移之后,您需要从客户模型中删除 external_info,并且您想从项目中删除 external_app。如何在不破坏旧迁移的情况下删除此依赖项?

最佳答案

好的,所以我的解决方法是按顺序执行以下步骤:

  • 生成将从客户模型中删除 external_info 列的迁移脚本
  • 删除了所有引用该字段的代码
  • 修改了 0001 迁移以将外键字段创建为在 0001 迁移之前存在的不同模型
  • 从 pip 要求中删除了应用程序并安装了应用程序

  • 按照这些步骤升级现有数据库和从头开始构建会产生相同的数据库模式。 (不包括我现在需要找到一种方法来摆脱应用程序创建的表,有人对最佳方法有想法吗?我正在考虑编写一个 migrations.RunSql 来删除表,但它们不会在新的创建的数据库)

    关于django-models - 添加模型依赖项后删除应用程序引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36268810/

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