簡體   English   中英

如何將部署的 rails 應用程序連接到現有的 Heroku 數據庫

[英]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:loaddb:migrate而不是db:setup

這里是關於問題的更多信息https://help.heroku.com/63D7ALXT/why-am-i-seeing-user-does-not-have-connect-privilege-error-with-heroku-postgres-on-review-應用

您可以使用 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的原因是它當前指向另一個沒有任何輔助附件的數據庫。 這是一種安全機制,可防止用戶意外射中自己的腳。 這應該允許您進行更改。

  1. heroku addons:attach <addon name, eg postgresql-cloudy-12345> --as ORIGINAL_DB --app <app name>
    • 這將創建一個額外的附件名稱,因此您不會丟失對原始數據庫的引用
  2. heroku addons:detach DATABASE_URL --app <app name>
    • 這將刪除 Heroku 管理的DATABASE_URL配置變量。
  3. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM