gpt4 book ai didi

django - 如何从公共(public)存储库中排除南方迁移?

转载 作者:太空狗 更新时间:2023-10-29 14:48:17 26 4
gpt4 key购买 nike

我正在使用 South 来管理我的开发和生产环境中的模式和数据迁移。因此,我将迁移保存在我的 git 存储库中,这样我在开发中所做的更改就会在生产中正确迁移。

我正在开发的应用程序和项目目前是私有(private)的,仅由我开发。在某个时候,我想发布/分发我的应用程序。我假设到那时,我将有一个“最终”模式,因此不会“需要”南方。由于这些应用程序以前没有分发过(我的环境除外),公共(public)版本不需要我在开发应用程序时使用的迁移。

我有两个问题:

  1. 根据我的假设删除或至少“清理”迁移是否好(或可接受)?

  2. 最好的方法是什么?我想为公共(public)/分布式基础保留一个分支是可行的,但我对 git 还很陌生,所以我不知道我的选择是什么。

谢谢,

最佳答案

对于处理 South 和版本控制的人来说,这是一个常见的混淆点。当然,您应该为您的项目提交迁移,因为其他人将需要自己运行相同的迁移。但是,您应该在提交之前清理您的迁移,这实际上看似简单。

如果它是一个全新的应用程序或一个全新的项目:

  1. 将应用回滚到“零”:

    python manage.py migrate myapp zero
  2. 删除应用程序的所有迁移(“迁移”目录中除 __init__.py 之外的所有内容)。

  3. 生成新的初始迁移:

    python manage.py schemamigration --initial myapp

如果它是一个现有的应用程序,则过程大致相同,但您只会回滚到就在您创建的第一个迁移之前。然后,您将简单地生成一个新的自动迁移而不是初始迁移。例如,如果应用程序已经处于迁移 0005,而您创建了迁移 0006、0007 和 0008:

  1. 回滚到您创建的第一个迁移之前 (0006):

    python manage.py migrate myapp 0005
  2. 删除您创建的所有迁移(0006、0007 和 0008)

  3. 生成新的自动迁移:

    python manage.py schemamigration --auto myapp

无论哪种方式,您最终都会得到一个封装所有更改的文件,而不是多个文件。然后,您将它提交给您的源代码管理。

关于django - 如何从公共(public)存储库中排除南方迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12569191/

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