不同的本地数据库配置Rails

时间:2016-08-17 16:01:18

标签: ruby-on-rails postgresql

我在Rails项目的团队中工作。

我们每个人都有一个用于开发目的的本地数据库。我们遇到了一个问题:每个人都有不同的本地数据库配置。当有人在没有重置/config/database.yml的情况下进行提交时,团队中的其他成员无法使用他们的数据库,因为未配置访问权限。

我可以提交本地配置吗?每个人都可以毫无问题地工作,而不需要每次都重新设置文件?有时像Django中的local_settings.py

2 个答案:

答案 0 :(得分:3)

您可以通过config/database.yml文件和DATABASE_URL env var configure the database in Rails。它们已合并,但DATABASE_URL的设置优先。

一个好的解决方案是使用足以支持config/database.yml的基本配置或任何最常见的解决方案来检查postgres.app

需要其他设置的开发人员可以设置DATABASE_URL env var来自定义数据库配置。像figarodotenv这样的宝石让这更容易。

如果你想知道Heroku如何设法使用正确的数据库,无论你投入database.ymlDATABASE_URL ENV var是如何配置你的生产数据库。

我为什么要使用ENV vars而不是更多数据库_ *。yaml文件?

  

十二因素应用程序将配置存储在环境变量中(通常   缩写为env vars或env)。环境变量之间很容易改变   部署而不改变任何代码;与配置文件不同,有   他们偶然检查代码回购的可能性很小;   与自定义配置文件或其他配置机制不同   Java系统属性,它们是与语言和操作系统无关的标准   https://12factor.net/config

答案 1 :(得分:2)

config/database.yml添加到rails-app根路径的.gitignore文件中。 将生成所需的值config/database.yml复制到config/database_example.yml。 现在,您可以修改本地数据库,并在生产中将config/database_expample.yml复制到config/database.yml

如果git忽略了配置文件,那么每个人都可以在本地更改它,而不会被git跟踪。

编辑: 在这里你看到你如何从跟踪中删除文件! Ignore files that have already been committed to a Git repository