我在Rails项目的团队中工作。
我们每个人都有一个用于开发目的的本地数据库。我们遇到了一个问题:每个人都有不同的本地数据库配置。当有人在没有重置/config/database.yml
的情况下进行提交时,团队中的其他成员无法使用他们的数据库,因为未配置访问权限。
我可以提交本地配置吗?每个人都可以毫无问题地工作,而不需要每次都重新设置文件?有时像Django中的local_settings.py
答案 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来自定义数据库配置。像figaro和dotenv这样的宝石让这更容易。
如果你想知道Heroku如何设法使用正确的数据库,无论你投入database.yml
和DATABASE_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