gpt4 book ai didi

Django - 外部应用程序的数据迁移

转载 作者:行者123 更新时间:2023-12-04 12:47:14 25 4
gpt4 key购买 nike

有什么方法可以为第三方 Django 应用程序正确创建数据迁移吗?

运行 python manage.py makemigrations --empty <externa-app-label>工作,但在应用程序的目录中创建迁移(在虚拟环境中......不想弄乱它)。

这是我的情况:

我需要用具有类似功能的外部应用程序替换 Django 项目的内部应用程序之一,然后删除旧的内部应用程序。这些应用程序具有模型,并且存在需要迁移的项目的现有数据库。如果我以后不打算删除它,我会将数据迁移与旧应用程序相关联。

需要这样的东西的一个更简单的例子可能只是需要用一些初始数据填充第三方应用程序。

最佳答案

只需将数据迁移创建为您其他内部应用程序之一的一部分,然后在那里进行数据操作(甚至可能为此目的创建一个临时应用程序?)

重要的一点是在数据迁移文件中添加一个新的依赖项。类似这样,但当然可以在 extenralapp/migrations 中查找最新的迁移名称。目录(或其他目录,如果在 settings.MIGRATION_MODULES 中被覆盖)。

class Migration(migrations.Migration):

dependencies = [
('yourapp', '0004_auto_20151216_1509'),
('externalapp', '0011_20010203_1415'), # this line
]

...

一个相关的...

如果使用 ContentType和/或 auth.Permission模型,您可能会在尝试获取它们时遇到问题。这两个模型都是在成功 manage.py migrate 结束时创建的。命令。

在这种情况下,您的迁移很可能会自行运行良好,但如果您一次性运行所有迁移(即在干净的数据库上),则会失败。有关更多信息和解决方法,请参阅 #23422 Cannot add Permission to Group in data migration .

关于Django - 外部应用程序的数据迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29520929/

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