【问题标题】:Django South migration on production servers?生产服务器上的 Django South 迁移?
【发布时间】:2013-01-25 14:54:27
【问题描述】:

在我的本地开发屏幕上,我正在使用 South 数据迁移。我将我的应用程序部署到使用 git 到我的生产服务器。我已将所有 /south/ 文件夹放入我的 git .ignore 文件中。但是,我安装的应用程序中仍然列出了 south。

我的问题是。我是否应该在生产服务器上也包含南,或者只是将我的设置文件拆分为本地和生产,南仅安装在本地。

其他人如何处理?

谢谢

【问题讨论】:

    标签: django django-south


    【解决方案1】:

    我认为没有理由不在您的生产服务器中安装/使用 south,它将为您提供一种在未来也可以在生产服务器中更改数据库架构的方法。我通常这样做,并使用fabric 管理开发和生产模式迁移。

    无论如何都可能需要拆分设置文件(例如,用于 DB/Debug 设置)

    您还可以根据 settings.py 中的某些内容有条件地将南添加到 INSTALLED_APPS:

    例如

    if DEBUG:  // or hostname == 'localhost', path=='...', anything else
        INSTALLED_APPS += ('south',)
    

    【讨论】:

    • 只是出于好奇,您有什么理由必须在生产环境中安装或使用 south?
    • 我相信生产中需要南,否则您的migrate 命令将无法运行。
    • 如果我的客户要求我快速更改 db 架构:我在 django 开发服务器中更改模型,运行 schemamigration,测试它,然后如果一切正常,只需一个 fabric 命令我提交更改,在生产服务器上进行结帐,运行 manage.py migrate ,重新启动网络服务器。否则我必须手动更改数据库架构,如果更改很复杂,可能会很乏味(我认为这就是南存在的原因)
    • @Spike 否则你必须做类似stackoverflow.com/questions/5739880/…
    • @Spike 现在我明白了为什么您不需要在生产服务器上安装南:您将开发和生产代码都连接到同一个数据库!我必须同意 Steve Mayne:将开发代码和生产代码连接到同一个数据库不是一个好习惯,原因有很多,其中之一是它不允许您在开发过程中在投入生产之前“试验”不同的解决方案。而且,顺便说一句,你不必道歉,我们都在这里互相学习!
    【解决方案2】:

    我个人在生产服务器上使用 south。这允许我使用普通的manage.py migrate 命令在实时数据库上运行数据迁移。这可确保将实时数据库迁移到已部署代码版本的正确位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-11
      • 1970-01-01
      • 2018-03-23
      • 1970-01-01
      • 2014-05-07
      • 2021-04-08
      • 2013-04-17
      • 2012-08-06
      相关资源
      最近更新 更多