2015-01-08 30 views
6

我想部署我的Rails應用程序到Heroku,現在我想要加載我的架構。我得到以下錯誤:Heroku架構負載:數據庫「postgres」的權限被拒絕用戶

Running `bundle exec rake db:schema:load` attached to terminal... up, run.1533 
rake aborted! 
PG::ConnectionBad: FATAL: permission denied for database "postgres" 
DETAIL: User does not have CONNECT privilege. 

這是奇怪,因爲postgres是不是應該連接到數據庫。應用程序可通過ENV獲得的數據庫URL具有正確的值,並且長顯然是隨機名稱d3kwlkwlwjwljetc...

搜索這條消息給了我試圖刪除或重置數據庫的人,這不是我正在做的。

  • 我有0行
  • 我試過pg:reset,甚至刪除並放回數據庫。徒勞無功。
  • 我不這樣做db:drop,只是db:schema:load

我傻眼了。爲什麼我的應用程序無法連接?

編輯:顯然,我不能schema:load,但我可以遷移我所有的遷移。這是爲什麼?

回答

9

看來,這是Rails本身的一個問題 - 在https://github.com/rails/rails/issues/17945有關於它的討論 - 似乎有一個提交(https://github.com/rails/rails/blob/master/activerecord/lib/active_record/tasks/postgresql_database_tasks.rb#L77)連接到Heroku不允許的posgres數據庫,因此失敗。

總之,現在使用db:migrate直到問題解決。

+0

謝謝約翰!希望這可以幫助那些遇到同樣事情的人。看來這個補丁已經在4.1.9和4.2.0發佈了。 –