4

我在 Git 中有 2 个分支 - 暂存和生产。它们部署到同一个 VPS,其中有一个生产数据库和一个单独的临时数据库。这使我们能够在不影响生产环境的情况下暂存新功能。然后,当我们准备好时,我们将数据库更改从登台复制到生产。

设置它的最佳方法是什么,以便暂存分支具有单独的数据库凭据来生产?目前,数据库凭据存储在单个文件中。我一直在考虑使用 gitignore 在两个分支中忽略这个文件并手动编辑它,以便它在每个分支上保持不同。这是最好的做法还是有更好的方法?

4

2 回答 2

1

我们使用级联方法:

  1. 默认设置在一个通用的“ config”文件中。
  2. 对于每个开发阶段,它都有自己的配置文件,例如我们有一个config_prod和一个config_dev.
  3. 每个阶段都以不同的(系统)用户身份运行,我们为该用户设置一个环境变量PROJ_SETTINGS并将其指向我们需要加载的文件。

然后代码读取默认值,然后用环境变量指向的资源(如果存在)中可用的任何内容覆盖它们。

这个变量的设置由我们的普通 devops/automation 脚本负责。我们有几个优势:

  1. 将所有配置置于版本控制之下。
  2. 无需修改源即可轻松切换设置。
于 2013-01-06T17:47:16.153 回答
0

是的 gitignoring database.yml 文件是我在一些组织中使用过的一种方法。

我们通常在源代码管理中保留一个 database.yml.sample 以便更容易。用户只需将其复制到 database.yml 并根据需要进行修改。

于 2013-01-06T17:41:29.427 回答