gpt4 book ai didi

python - 为什么south要用迁移文件呢?

转载 作者:太空宇宙 更新时间:2023-11-03 18:18:54 25 4
gpt4 key购买 nike

我正在与另一位开发人员一起开发 Django 应用程序。到目前为止我很喜欢 Django 。

但是我选择了 South 的副本,以便能够在开发过程中修改 models.py,现在我们一直遇到迁移合并冲突。

是的,我已经收到备忘录了:

The important message here is that South is no substitute for team coordination - in fact, most 
of the features are there purely to warn you that you haven’t coordinated, and the simple merging
on offer is only there for the easy cases. Make sure your team know who is working on what, so they
don’t write migrations that affect the same parts of the DB at the same time.

但我很困惑为什么迁移文件会存在?如果 models.py 是数据库模式的权威词,那么迁移文件会给我什么?希望这能帮助我了解如何更好地使用南方。

最佳答案

如果您不关心数据,那么您不需要迁移文件,甚至不需要 South FWIW - 您只需清除表并重新运行 manage.pysyncdb 。这里的要点是也允许数据迁移,一旦您投入生产并且拥有大量您关心的真实数据,这已被证明是一个非常有用的功能。

假设您有一个字段想要分成两部分或移动到另一个模型等...如果您不想丢失数据,则需要一个三步过程:

  1. 添加新字段
  2. 将您的数据移至新字段
  3. 删除旧字段。

这转化为

  1. 第一次架构迁移
  2. 数据迁移
  3. 第二次架构迁移

注意:您当然可以将其全部放入一个迁移文件中(这显然是最干净的解决方案,因为它使您的迁移原子化),但是使用 1. 和 3. 的自动模式迁移生成更容易。

长话短说:“迁移文件”实际上是迁移脚本,这是您需要为任何现实生产项目编写的内容。 South 主要提供一个支持框架(迁移脚本可能非常棘手)和一个非常方便的架构迁移生成器,它使您的最常见用例之一(非破坏性架构更改)的生活更轻松。

关于python - 为什么south要用迁移文件呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24523911/

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