[英]How connect deployed rails app to exist Heroku database
我在 Heroku 上啟動了我的 Rails 應用程序。 我想將它連接到我朋友的一個現有項目的數據庫,該項目也部署在 Heroku 上。 一位朋友給了我憑據和數據庫的 url。 但是,我不明白如何將我的項目連接到我朋友的數據庫。 我試圖改變DABASE _URL
但一切都沒有用。 此外,憑據數據被放置在database.yml
,當我在 heroku 終端中運行heroku run db:setup
,我得到
FATAL: permission denied for database "postgres" DETAIL: User does not have CONNECT privilege. Couldn't create '*************' database. Please check your configuration. rake aborted! PG::ConnectionBad: FATAL: permission denied for database "postgres" DETAIL: User does not have CONNECT privilege
使用以下步驟:
1)在設置/配置變量下添加DATABASE_URL
(完整的url用戶名、密碼、主機)。
2) 對於 Rails 應用程序,您應該考慮使用db:schema:load, db:structure:load
或db:migrate
而不是db:setup
。
您可以使用 heroku addons:attach 命令在多個應用程序之間共享單個 Heroku Postgres 數據庫
heroku addons:attach my-originating-app::DATABASE --app new_app
有關更多信息,請在此處查看https://devcenter.heroku.com/articles/heroku-postgresql#sharing-heroku-postgres-between-applications
希望這可以幫助
無法更新DATABASE_URL
的原因是它當前指向另一個沒有任何輔助附件的數據庫。 這是一種安全機制,可防止用戶意外射中自己的腳。 這應該允許您進行更改。
heroku addons:attach <addon name, eg postgresql-cloudy-12345> --as ORIGINAL_DB --app <app name>
heroku addons:detach DATABASE_URL --app <app name>
DATABASE_URL
配置變量。heroku config:set DATABASE_URL=<the connection string for the other database> --app <app name>
DATABASE_URL
設置為指向另一個數據庫,該數據庫應該將事物置於可操作狀態。** 這里需要注意的是,這是一個脆弱的配置,因為主機名可以更改為數據庫。 如果數據庫進行維護,您將需要手動更改配置變量(即重復步驟 3)。
我通過轉到 heroku.com 到我的應用程序然后設置然后配置變量解決了這種情況 DATABASE_URL 與 ORIGINAL_DB_URL 不同,所以我將 DATABASE_URL 更改為類似於 ORIGINAL_DB_URL 在我的情況下:postgres://quxhxkemlsfzzv:964c7 .... ......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.