gpt4 book ai didi

django - 如何重命名 Django 应用程序并将数据从一个应用程序迁移到另一个应用程序

转载 作者:行者123 更新时间:2023-12-01 09:15:57 26 4
gpt4 key购买 nike

我有一个名为 app1 的 Django 应用程序,其中包含模型和迁移文件。
我将此应用程序重命名为 app2 并修复了所有导入、网址等...
我现在有 迁移文件 和表中的数据的问题。
如何以正确的方式编写 迁移 以确保:

  • 新安装 => 创建新表
  • 更新旧版本 => 创建新表,移动数据,删除旧表

  • 注1:有几个表有很多外键。
    这是我到目前为止的进展,我不确定我是否走在正确的道路上:
  • 我删除了所有旧的迁移
  • 我运行 python manage.py makemigrations 来生成新的迁移文件

  • 完成这两个步骤后,我可以安装我的应用程序,但旧版本仍然存在问题。
    问题: 迁移数据的最佳方式是什么?
    注 2:我不使用 South

    最佳答案

    我找到了一个有效的解决方案

  • 使用新外键和新应用依赖项修复旧迁移。
  • 强制旧迁移以旧应用程序名称创建表,因此在 migrations.CreateModel.options 中,添加 db_table: 'app1_table_name'
  • 在每个迁移文件中添加 replaces = [('app1', 'migration_file_name')] 。这将告诉 Django 当前迁移( app2.migration_file_name )将替换旧文件,这将防止 django 执行迁移两次。
  • 创建迁移文件以使用 migrations.AlterModelTable
  • 重命名表

    关于django - 如何重命名 Django 应用程序并将数据从一个应用程序迁移到另一个应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44957167/

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