使用单独的数据库设置Git登台和生产环境的最佳方法是什么?

时间:2013-01-06 17:36:12

标签: database git environment production staging

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

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

2 个答案:

答案 0 :(得分:1)

我们使用级联方法:

  1. 默认设置位于常用的“config”文件中。
  2. 对于每个开发阶段,它都有自己的配置文件,例如我们有config_prodconfig_dev
  3. 每个阶段作为不同的(系统)用户运行,对于该用户,我们设置环境变量PROJ_SETTINGS并将其指向我们需要加载的文件。
  4. 然后代码读取默认值,然后使用环境变量指向的资源(如果存在)提供的任何内容覆盖它们。

    我们的普通devops /自动化脚本负责设置此变量。我们有一些优势:

    1. 将所有配置保留在版本控制之下。
    2. 无需修改来源即可轻松切换设置。

答案 1 :(得分:0)

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

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