我想通过Dokku
将我的应用程序部署到VPS。
放在一起的dokku-postgres
documentation,并就此事(one在GitHub上)相对的,稀缺的互联网文档,似乎有必要配置database.yml
使用的URL环境变量url: <%= ENV['DATABASE_URL'] %>
如何为生产配置database.yml
因为我无法找到任何其他来源信息,我想知道应该如何配置database.yml
,以及Rails将如何连接到使用Dokku创建的postgres服务。
例如,认为将url
链接到DATABASE_URL
变量是必要的,这是否足以在我的Rails应用程序和postgres服务之间建立连接,还是需要使用用户名和密码?在后一种情况下,我希望使用什么用户名和密码?
以下是目前我的database.yml
的样子。
default: &default
adapter: postgresql
encoding: unicode
pool: 5
username: asarluhi
development:
<<: *default
database: fireworks_app_development
test:
<<: *default
database: fireworks_app_test
production:
<<: *default
database: fireworks_app_production
pool: 25
username: fireworks_app
password: <%= ENV['FIREWORKS_APP_DATABASE_PASSWORD'] %>
此文件被创建,因为它是(除了用于产生更高的池大小)当我创建的应用程序。你如何建议编辑production
部分?
的dokku,Postgres的文档指出以下(没有别的)将在链接的应用程序默认设置:
DATABASE_URL=postgres://postgres:[email protected]:5432/lolipop
代替棒棒糖的Postgres服务的例子,我会用fireworks_app_production
匹配在database.yml
数据库的名称是用户名和密码指向url
到DATABASE_URL
变量后,仍然有必要吗?我是否希望添加或删除其他内容?
您在'database.yml'中输入的设置与ENV [“DATABASE_URL”]中的选项合并。 ENV的设置优先。所以是的,你的'pool'选项将被使用。 http://guides.rubyonrails.org/configuring.html#configuring-a-database – max
如果我决定将'url:<%= ENV ['DATABASE_URL']%>''添加到''' database.yml'?正如你所链接的文件所述,这将是最佳做法。 – Asarluhi
在您的'database.yml'中明确添加'url:<%= ENV ['DATABASE_URL']%>'不是必需的,或者是数据库连接器默认使用'ENV ['DATABASE_URL']'的最佳实践。它只是一个示例,用于展示您应该在生产环境中使用ENV变量而不是检查数据库凭据的概念/最佳实践。 – max