如何使用本地设置覆盖Doctrine中团队的默认databases.yml?

时间:2010-07-13 18:30:30

标签: php doctrine symfony-1.4

正在寻找一种方法来干净地覆盖Doctrine / Symfony中的databases.yml的值,以便使用我自己的本地设置?

这个想法不是触及databases.yml并使用某种本地无版本文件来覆盖该默认值。

我正试图找出如何没有取得多大成功:/

2 个答案:

答案 0 :(得分:1)

对于这种包含依赖于环境(开发,测试,登台,生产......)的东西的配置文件,我通常每个环境使用一个文件,而且都是承诺来源控制。

例如,我可以:

  • databases.yml ==开发版本,在开发计算机上从源代码管理中签出项目时可以使用。
  • databases.testing.yml
  • databases.staging.yml
  • databases.production.yml


然后,在构建将部署到其他环境的.tag.gz (或类似)存档时,我将对应于目标的文件复制到默认文件。

例如,在创建将部署在生产服务器上的存档时,我会将databases.production.yml复制到存档中的databases.yml

这样,应用程序总是使用databases.yml,无论它部署在什么环境中 - 并且所有可能的配置都被提交到源代码控制。


当然,如果你有一些打包/构建过程,这样做效果会好得多 - 而且不只是手动通过FTP将文件上传到服务器......

答案 1 :(得分:0)

我通常将database.yml添加到svn:ignore而不是commit database.yml.sample。

本地会将database.yml.sample复制为database.yml并添加自己的值。

这样就不会意外地提交database.yml文件。