2013-07-31 116 views
5

我目前正在評估Nitrous.io並喜歡我目前看到的內容。我目前在Heroku託管的Postgresql服務上也有幾個用於測試和開發的數據庫。我在運行測試時遇到了一些問題,我希望在這裏的某個地方可能有解決方案。無法在Heroku託管的Postgres數據庫上運行Ruby on Rails測試

當我運行耙分貝:測試:準備,我發現了錯誤:

FATAL: permission denied for database "postgres"                             
DETAIL: User does not have CONNECT privilege. 

從我在其他地方閱讀,這是試圖刪除數據庫,但是Heroku的託管數據庫不允許那。有沒有人知道如何在Heroku的Postgresql上運行Rails測試?

+0

你爲什麼要嘗試在heroku上運行測試? –

+0

我正在Nitrous.io上開發,他們推薦使用Heroku託管的Postgres解決方案作爲數據庫。我上面提到過,儘管我想我對Nitrous並沒有太多的解釋。我只是試圖看看在使用Nitrous.io開發「雲」時是否有解決方案。 – RyanN

+0

也許我是一個白癡,但我不知道這個nitrous.io是做什麼的(是的,我已經看過他們的頁面) –

回答

3

Nitrous.IO已經發布,這將允許您將氧化亞氮箱內安裝的Postgres的軟件包管理器。這如果需要,可以用於測試數據庫以及開發數據庫:

https://github.com/action-io/autoparts

這也要求你正在運行的版本「糠」使用氧化亞氮盒或更高版本(見README)。如果您在版本「arya」上運行,您可能需要終止/創建一個新框。

要使用汽車配件,請運行parts search以查看所有可用的配套。

要亞硝酸框內安裝PostgreSQL,運行以下命令:

parts install postgresql

確保您config/database.yml文件中明確規定host: localhost你想連接,否則PG適配器將無法爲每個數據庫找到它需要連接的套接字。

+0

如何通過零件連接rails應用程序和postgresql?部件狀態說postgresql正在運行,但我可以耙db:遷移我的應用程序。 – cpursley

+0

不錯的功能。雖然我和cpursley有同樣的問題。當我運行rake db時:create:我得到的「無法連接到服務器:沒有這樣的文件或目錄服務器是否在本地運行並接受Unix域套接字上的連接」/var/run/postgresql/.s.PGSQL。 5432 「?」 有什麼建議嗎? – RyanN

+0

我也有同樣的問題。'psql'完全適用於無密碼的默認用戶名,但無論出於何種原因,普通的database.yml配置都無法與上述錯誤建立連接。 :-( –

0

根據Heroku文檔,您需要在您的rake任務中使用「heroku pg:reset」。

https://devcenter.heroku.com/articles/rake

+0

事情是,這不是一個heroku網站。我只使用Heroku的Postgres託管數據庫解決方案。 – RyanN

+0

@RyanN但是你必須創建一個Heroku應用來獲取數據庫,不是嗎? –

+0

@MichaelSzyndel不,您可以提供Heroku數據庫,而無需在Heroku上託管應用程序。 https://postgres.heroku.com/ – RyanN

相關問題