我很好奇如何正确设置我的database.yml
Rails 4 应用程序中的文件。
我并没有真正详细研究过它,因为它似乎在部署到 Heroku 时才起作用,但我现在想了解它,并注意到格式从 Rails 4.0 到 4.1 发生了一些变化。例如
4.0.2
development:
adapter: mysql2
encoding: utf8
database: my_app_development
pool: 5
username: root
password:
test:
adapter: mysql2
encoding: utf8
database: my_app_test
pool: 5
username: root
password:
production:
adapter: mysql2
encoding: utf8
database: ymca_gym_production
pool: 5
username: root
password:
4.1.0
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: root
password:
socket: /var/run/mysqld/mysqld.sock
development:
<<: *default
database: my_app_development
test:
<<: *default
database: my_app_test
# On Heroku and other platform providers, you may have a full connection URL
# available as an environment variable. For example:
#
# DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase"
#
# You can use this database configuration with:
#
# production:
# url: <%= ENV['DATABASE_URL'] %>
#
production:
<<: *default
database: my_app_production
username: my_app
password: <%= ENV['MY_APP_DATABASE_PASSWORD'] %>
我的问题是
- 我应该在所有环境中设置用户名和密码吗?
- 我在 Heroku 上使用 ClearDB 作为我的数据库。我应该使用
url: <%= ENV['DATABASE_URL'] %>
正如评论所建议的那样用于生产?
您发布的第二个database.yml实际上与第一个相同,它只是从开发块复制值。
回答您的其他问题:
1)我应该在所有环境中设置用户名和密码吗
如果您愿意,您可以这样做,或者您也可以像上面那样保留它,它从一个块中获取所有凭据。
2)如果我使用 Clear DB 和 Heroku 作为我的数据库,那么我应该取消注释吗
heroku 实际上完全忽略了这个文件(无论如何都不应该将其签入源代码管理)。 Heroku 有自己的数据库处理机制,您可以在此处阅读更多信息:https://devcenter.heroku.com/articles/heroku-postgresql https://devcenter.heroku.com/articles/heroku-postgresql
本质上,将“heroku 的数据库”和您在此文件中定义的本地数据库完全不同地对待。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)