在发布到分支时更改某些变量的最佳实践



我用Django做一个自定义文档管理系统。

当前在IIS + Hyper-V上有一个带数据库的生产环境,我们叫它productiveDB.

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

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

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

在GitLab或git中是否有"内置"的方式来标记特定的变量并根据它们所在的分支更改它们?像:如果分支=主然后设置DEBUG=FALSE,数据库=productiveDB之前,而CI/CD管道正在运行,或者我必须坚持一个自定义脚本?

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

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

第二个选项是为每个环境创建多个设置文件。请看这篇文章,了解详细的解释。

最新更新