2012-02-11 72 views
1

這是跟我的另一個問題關於獨角獸。以下問題: 我使用的是Ruby 1.8.7,rails 3.0,pg gem(0.13.0)。紅寶石剛剛死在「ActiveRecord :: Base.establish_connection」

當我在生產模式下啓動rails控制檯時,我可以查詢記錄等,所以 數據庫連接和pgsql適配器工作。我可以通過ActiveRecord::Base.connection.disconnect!斷開AR連接,但只要我嘗試使用ActiveRecord::Base.establish_connection重新連接,ruby就會死亡。沒有錯誤,沒有日誌輸出,沒有seg故障,它只是退出(狀態1)。我試圖將我的database.yml中的host設置爲postgres unix套接字以及127.0.0.1,但不會更改此事。可能是什麼問題,或者我能做些什麼才能找到根源呢?我不知道如何調試,絕對沒有輸出或錯誤消息。

回答

0

爲什麼要明確地關閉與數據庫的連接? Rails/AR爲你處理連接池。機架中間件應該在請求處理結束時釋放連接。

+0

這只是測試用例來演示問題,我需要關閉並重新打開連接的獨角獸(使用之前和之後叉鉤) – 2012-02-11 15:44:05

+0

如果它可以幫助,我通常基於GitHub的構建Unicorn的配置:https://github.com/blog/517-unicorn – Jef 2012-02-11 16:06:42

1

我通過將pg降級到版本0.11.0來解決問題(或多或少)。這對我來說現在是有效的。花費我1和半天...

+0

您是否[打開了一個針對'pg' gem]的錯誤(https://bitbucket.org/ged/ruby- PG /問題)?這聽起來像是一個非常嚴重的問題。 – Brandan 2012-02-11 16:16:22