Ruby on rails 有人能解释一下database.yml文件的结构吗
我已经参考了RubyonRails指南和StackOverflow,了解了如何设置database.yml文件以及它们是如何设置的,但是我在使用特定的database.yml文件以及它们如何相互作用时遇到了一些障碍。参考RubyonRails指南并不能让我明白这一点。我希望有人能帮我填补空缺 以下是database.yml文件:Ruby on rails 有人能解释一下database.yml文件的结构吗,ruby-on-rails,postgresql,Ruby On Rails,Postgresql,我已经参考了RubyonRails指南和StackOverflow,了解了如何设置database.yml文件以及它们是如何设置的,但是我在使用特定的database.yml文件以及它们如何相互作用时遇到了一些障碍。参考RubyonRails指南并不能让我明白这一点。我希望有人能帮我填补空缺 以下是database.yml文件: development: db_host: qa-db.company_name.com db_port: 5432 db_name: company_st
development:
db_host: qa-db.company_name.com
db_port: 5432
db_name: company_staging
db_user: rubyuser
db_pass: generic_password
# Warning: The database defined as 'test' will be erased and
# re-generated from your development database when you run 'rake'.
# Do not set this db to the same as development or production.
test:
db_host: qa-db.company_name.com
db_port: 5432
db_name: company_test
db_user: rubyuser
db_pass: generic_password
testing:
db_host: host
db_port: 5432
db_name: company_staging
db_user: rubyuser
db_pass: normal_password
selenium:
db_host: host
db_port: 5432
db_name: company_selenium
db_user: ruby
db_pass: normal_password
production:
db_host: qa-db.company_name.com
db_port: 5432
#db_name: company_production
db_name: company_staging
db_user: ruby
db_pass: generic_password
这就是我感到困惑的地方。这个文件中到底有多少个数据库?我指的是数据的实际副本。显而易见的答案是有五个数据库。但我不太确定
查看数据库开发、测试和生产。这三个数据库的db_主机指向qa_db.company_name.com。这告诉我这三个数据库指向相同的数据。开发、测试和生产包含相同的数据,这意味着如果我在测试中删除这些数据,开发和生产也将被删除。但是请注意,这三个数据库有不同的db_名称。请注意,开发和生产都将其db_名称命名为company_staging,而测试有company_test。这对数据有何影响?这些是不同的副本吗?db_名称的更改是否指向不同的内容
测试数据库具有db_host:host,名称为company_staging。如果我登录到这个。我会在哪个数据库中
这对我来说是一个模糊的领域,所以一些澄清将真正帮助我。谢谢。在生产环境中,您将只定义一个数据库,除非您有使用多个不同数据库服务器的异常配置 在开发环境中,根据您的测试策略,您将有两个或三个。通常定义了
开发
和测试
,其他的都省略了,因为它们不相关
在您的开发环境中定义生产并不是很有用,因为您首先不应该连接到该数据库,它应该受到严重的防火墙保护
通常,版本控制中不包括config/database.yml
,而是包含某种“示例”文件。由于团队中的每个开发人员可能具有不同的凭据,因此最好省略此文件,而是使用自己的自定义版本,而不是冲突
我的建议是在服务器上存储特定于服务器的配置,并在部署时将其链接到正确的位置。例如,shared/config/database.yml
通过类似的工具符号链接到releases/nnnnnn/config/database.yml
database.yml
文件的长短是Rails将在其中查找与当前Rails\u ENV
匹配的密钥,并将该配置用于与数据库的初始连接。在那里你可以有你想要的任何数量,但只有一个与你的环境相关