正在寻找一种方法来干净地覆盖Doctrine / Symfony中的databases.yml的值,以便使用我自己的本地设置?
这个想法不是触及databases.yml并使用某种本地无版本文件来覆盖该默认值。
我正试图找出如何没有取得多大成功:/
答案 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文件。