【问题标题】:Best practice for changing certain variables if published to a branch [duplicate]如果发布到分支,则更改某些变量的最佳实践[重复]
【发布时间】:2021-12-06 08:58:51
【问题描述】:

我使用 Django 开发自定义文档管理系统。

目前在带有数据库的 IIS + Hyper-V 上有一个生产环境,我们称之为 productiveDB

新功能在不同的分支本地实现,使用另一个数据库,我们称之为stagingDB

当我在新分支上本地工作时,我必须在 settings.py 中将数据库配置和凭据从 productiveDB 调整为 stagingDB - 此外,我将调试模式设置为真。当我提交更改并合并到 master 时,有时我会忘记调整设置,这就是我的问题开始的地方:

处理这种“注意力不集中”的最佳做法是什么?当然,我可以为暂存环境调整本地设置,反之亦然以用于生产设置,但有时我必须向上述文件添加新设置,因此我必须提交编辑后的 ​​settings.py。

GitLab 或 git 中是否有“内置”方式来标记特定变量并根据它们所在的分支更改它们?比如:如果 branch=master 然后在 CI/CD 管道运行之前设置 DEBUG=FALSE, DATABASE=productiveDB 还是我必须坚持使用自定义脚本?

【问题讨论】:

    标签: django git merge gitlab continuous-integration


    【解决方案1】:

    我建议在settings.py 中添加一个用于区分不同环境的环境变量。示例:

    # settings.py
    
    import os
    
    environment = os.environ.get("ENVIRONMENT", "DEVELOPMENT").lower()
    if environment == "production":
        DATABASES = {
            ...
        }
    else:
        DATABASES = {
            ...
        }
    

    第二个选项是为每个环境创建多个设置文件。详细解释看this article

    【讨论】:

      猜你喜欢
      • 2020-05-04
      • 2023-03-14
      • 2012-07-03
      • 1970-01-01
      • 1970-01-01
      • 2013-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多