`postgresql_connection':未指定數據庫。缺少參數:數據庫。 (ArgumentError)任何與數據庫相關的rake任務「無數據庫」錯誤
我使用Homebrew安裝了postgresql,並且能夠使用我的本地用戶名作爲posgresql帳戶從命令行成功連接。但是,當我運行任何數據庫相關的rake任務時,我得到了上述錯誤,我似乎無法弄清楚爲什麼。
這是我的database.yml。 https://gist.github.com/3177f1f6b90a69e3829a
`postgresql_connection':未指定數據庫。缺少參數:數據庫。 (ArgumentError)任何與數據庫相關的rake任務「無數據庫」錯誤
我使用Homebrew安裝了postgresql,並且能夠使用我的本地用戶名作爲posgresql帳戶從命令行成功連接。但是,當我運行任何數據庫相關的rake任務時,我得到了上述錯誤,我似乎無法弄清楚爲什麼。
這是我的database.yml。 https://gist.github.com/3177f1f6b90a69e3829a
不知道它是否只是一個粘貼錯誤,但縮進您的編碼,主機,池等過去適配器可能會導致問題。 YAML知道空白,並假定它們嵌套在適配器下。
有幾件事情浮現在腦海。
可能不是一個絕對的解決方案,但是這將有助於縮小其中的問題的來源。
'gem list pg'顯示pg(v。0.11.0和0.10.0)都已安裝。它在我的gem文件中被列爲'gem pg'。 – 2011-06-11 14:37:48
試圖通過rake任務創建數據庫結果https://gist.github.com/9ff92c5b748a6774c9fa。我通過postgresql手動創建了它,並且能夠成功連接到它。 – 2011-06-11 14:38:33
我遇到了這個問題以及Rails 3.1項目。乾燥的YML(如許多指南所建議的那樣)在Rails 3.1之前完全解析完畢後不再有效。 Rails 3.1將yml解析器從'syck'切換到'psych'。
此更改的後果之一 - 也許未知的更改爲Rails 3.1驗證database.yml - 是由於Eric M.使用的規範DRY導軌配置會觸發'Missing argument:database'錯誤,因爲:安裝程序正在被視爲一個rails環境,因此它未通過驗證,因爲它不包含數據庫的值。您可以通過創建任意任意環境來產生相同的錯誤,而忽略數據庫字段,以及運行rake db:version或任何數據庫敏感命令的問題。
有一些可能的解決方法(在我的優先順序排列):
YAML::ENGINE.yamler = "syck"
。您可能需要先登錄require 'yaml'
。我在我的Rails 3.1應用程序中使用了第一個解決方案,沒有任何問題。感謝Eric M.提出這個問題(不知道你是否有Rails 3.1應用程序或只是一些文本gremlins,因爲顛倒了你的訂單,但不適合我)。
我認爲這只是一個粘貼錯誤。我將添加一個精確的database.yml文件的要點。 – 2011-06-11 13:43:06
我無法在我的機器上重現此操作。我建議您嘗試將引用移動到每個環境的數據庫屬性下方,並查看是否有幫助。順便說一句 - 編碼拼錯了;) – dpb 2011-06-11 14:04:48
奇怪的是,移動安裝的東西低於開發工作。我知道我以前用這種方式設置了我的database.yml文件,所以也許只是格式化問題? – 2011-06-11 14:40:51