我想通過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