gpt4 book ai didi

django - 将数据和模式迁移混合在一个迁移文件中(Django)?

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

我听说过这样的观点:在 Django 中混合数据迁移和结构迁移是不好的做法。即使您在 Migration 类中指定atomic=False。但我找不到有关此主题的任何信息。即使是我更有经验的同事也无法回答这个问题。

那么,混合数据和结构迁移是否不好?如果是这样为什么?如果我这样做的话到底会发生什么?

最佳答案

在一次迁移中不混合数据和架构迁移是有实际原因的,如 entry for RunPython operation 中提到的。在 Django 文档中:

On databases that do support DDL transactions (SQLite and PostgreSQL), RunPython operations do not have any transactions automatically added besides the transactions created for each migration. Thus, on PostgreSQL, for example, you should avoid combining schema changes and RunPython operations in the same migration or you may hit errors like OperationalError: cannot ALTER TABLE "mytable" because it has pending trigger events.

还应该注意的是,对于不支持 DDL 事务的数据库,当数据和架构迁移操作不混合在一起时,在尝试迁移失败后修复数据库可能会更容易,因为数据迁移操作可以回滚在 Django 中自动执行。

关于django - 将数据和模式迁移混合在一个迁移文件中(Django)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60806250/

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