为什么在config / database.yml上使用扩展名?

时间:2015-11-27 18:38:04

标签: ruby-on-rails

我继承了使用config/database.yml.sqliteconfig/database.yml.psql代替config/database.yml的项目。

为什么要这样做,我应该如何使用它?

如果我只是运行rake db:create rails正在寻找config/database.yml。我已经尝试过寻找一种方法来指定配置文件的名称,但没有运气。

我可以问那些我继承代码的人,但是经过一些谷歌搜索后,我在其他项目中看到了这种模式,并认为如果SO有答案它会很好。

2 个答案:

答案 0 :(得分:5)

将database.yml添加到.gitignore文件中通常是很正常的,因为它可以包含密码等,因此应该远离Git仓库。

在这种情况下,将示例database.yml文件保存在回购中是很有用的,显示您想要的设置,比如Postgres数据库,如果您打算使用它,或者一个Sqlite数据库,如果您更喜欢它用于您的开发工作。然后,一旦克隆了回购,就可以快速设置。

您只需要运行:

cp config/database.yml.psql config/database.yml

然后将您自己的本地开发数据库密码添加到database.yml中,然后将其保留在repo之外,不与在同一项目中工作的任何其他开发人员共享。

答案 1 :(得分:0)

我实际上从未见过这种模式。在我看来,那些其他YAML文件是针对目标数据库进行了预编码的 - 预配置可以这么说。

同一个结果可以通过一个带有大量文档块的YAML文件来实现 - “这里是一个sqlite块,这里是一个Postgres块”等等。