2012-05-17 58 views
11

我有一個Rails應用程序在Postgres數據庫上運行。我正在設置一個在數據庫上運行的後臺任務隊列,並且我需要指定數據庫URL。如何找到本地postgres數據庫的URL路徑?

我嘗試過的各種排列方式都會返回FATAL: database "database-name" does not exist

是否有打印此URL的命令?

或者,又該URL看起來像如果我的database.yml中看起來像這樣

development: 
    adapter: postgresql 
    encoding: unicode 
    database: db/database-name 

感謝您的建議。

+0

經典的方法是檢查postgres日誌文件,只是爲了看看前端嘗試了什麼。 – wildplasser

+0

什麼**是PostgreSQL中數據庫的名稱? –

+0

約翰D,但它聞起來像任何其他名字的馬一樣甜蜜 –

回答

11

格式似乎是

postgres://username:[email protected]/database 

你在你的數據庫名/和(顯然)Postgres將接受數據庫名稱/,所以你需要爲使用

postgres:///db/database-name 

postgres:///db%2Fdatabase-name 

隨意取出e db/你的數據庫名稱的一部分 - 它只爲像SQLite這樣的數據庫提供保證,它將數據庫存儲在本地文件中並需要文件名。

+0

數據庫路徑是問題。我希望能解決這個問題,因爲我已經擁有數據庫中的數據。最後,我放棄了,名稱中沒有db的情況下重新創建,並導入了備份。完美的作品。謝謝! –

0

不知道你如何試圖訪問數據庫,但如果你正在嘗試創建一個腳本,它使用與rails相同的數據庫,但是單獨運行,請考慮使用在rails中運行的腳本。在Unix/Linux操作系統,如果加上此行:

#! script/rails runner 

到腳本的第一行,然後使其可執行文件:

chmod +x myscript 

那麼你可以簡單地用

./myscript 
運行

它可以像你的控制器一樣使用你的模型類並在rails中查看代碼。然後,不需要手動訪問數據庫。

+0

謝謝邁克爾,不,我只需要連接數據庫的路徑。我試圖將queue_classic併入我的應用程序https://github.com/ryandotsmith/queue_classic。 –

+0

我面臨的問題是我的database.yml定義了路徑'db/database-name',但錯誤是'FATAL:database「dbdatabase-name」不存在「 - 注意db後沒有斜槓分隔符。所以我正在尋找一種方式來詢問和解決Rails正在使用的路徑。有任何想法嗎? –