Git中Prod和Dev配置之间的最佳方法切换

时间:2017-03-17 12:25:39

标签: git configuration-files production

我们正在使用Git并且像往常一样,我们的工作流程是开发>分期>生产

该项目有几个配置文件。在开发期间,配置指向开发数据库。但是,在开发更改并且我已准备好部署之后,配置将需要更改并指向生产数据库。

在下一轮更改期间,我需要再次更改配置以指向开发数据库。

然后这个循环不断重复,而且由于我有3个配置文件,所以它很繁琐(我能做的最好是2,因为一个配置文件用于特定的库)。

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

我假设您的配置文件包含数据库信息,例如主机,用户名,密码......

IMO解决这个问题的一个好方法是将数据库信息存储到环境变量中,并将它们放入配置文件中。

例如,在开发,登台和生产中,数据库主机将存储在名为DATABASE_HOST的环境变量中。在配置文件中,您将拥有此行(php代码)

 $databaseHost = getenv('DATABASE_HOST');
 // ...

正如@Lasse V. Karlsen所说,应该通过git跟踪模板,配置文件本身应该被git忽略。 这样,开发人员不必创建环境变量,他们必须做的是从模板创建配置文件(当然是git-ignored)并设置他们的数据库信息(以及为什么不依赖于其他信息。服务器,环境......)

总而言之,配置文件应该被忽略,应该创建一个模板。部署时,将从模板创建配置文件。 新配置文件获取所需的环境变量。 但是,开发人员可以在本地创建这些环境变量,也可以修改其配置文件的值。