如何为生产配置database.yml

时间:2017-04-24 14:21:16

标签: ruby-on-rails postgresql vps dokku

我想通过Dokku将我的应用程序部署到VPS。
dokku-postgres documentation和相关的,稀缺的互联网文档放在一起(GitHub上的one),似乎有必要配置database.yml来使用url环境变量{ {1}}

由于我找不到任何其他信息来源,我想知道应该如何配置url: <%= ENV['DATABASE_URL'] %>,以及如何将Rails连接到使用Dokku创建的postgres服务

例如,理所当然地认为将database.yml链接到url变量是必要的,这是否足以在我的Rails应用程序和postgres服务之间建立连接,或者是否仍然需要使用用户名和密码?在后一种情况下,我期望使用什么用户名和密码?

以下是我DATABASE_URL看起来的样子。

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'] %> 部分?

dokku-postgres文档声明默认情况下将在链接的应用程序上设置以下(并且没有其他内容):

production

代替棒棒糖postgres服务示例,我会使用DATABASE_URL=postgres://postgres:SOME_PASSWORD@dokku-postgres-lolipop:5432/lolipop 来匹配fireworks_app_production中数据库的名称。 将database.yml指向url变量后仍然需要用户名密码吗?我希望添加或删除其他内容吗?

1 个答案:

答案 0 :(得分:2)

您不需要担心带dokku的database.yml,只需将您的应用上传到服务器,让我们使用&#34; fireworks&#34;就像这个名字一样。

当您第一次上传应用时,会自动创建,因此您无需创建它。

然后安装postgres插件并运行

# that will create the container for the database
$ dokku postgres:create fireworks
# and then you link both, the app with the database
$ dokku postgres:link fireworks fireworks

你不必担心任何其他事情,dokku将连接这个

然后你必须运行db:migrate,一切准备好了!