2014-07-10 120 views
6

我必須安裝在我的MacOS X RubyOnRails 4.1.4和PostgreSQL:軌道4 + PostgreSQL的hstore,不能執行 「創建擴展hstore」

brew install postgresql 

當我試圖轉移這一個:

CREATE EXTENSION hstore 

它給了我一個錯誤:

PG::UndefinedFile: ERROR: could not open extension control file "/usr/share/postgresql/9.3/extension/hstore.control": No such file or directory 

我試着用在文件系統中找到 「hstore.control」:

find/-name "hstore.control" 

,並發現該文件位於不同的路徑:

usr/local/Cellar/postgresql/9.3.4/share/postgresql/extension/hstore.control 

所以,我怎麼能重新定義「PG」創業板的配置糾正hstore擴展的路徑? 我只是試圖移除寶石,並安裝它:

rvm all do gem install pg -- --with-pg-config=/usr/local/Cellar/postgresql/9.3.4/bin/pg_config 

但沒有奏效。我仍然有同樣的錯誤。

預先感謝您。

UPDATE:

我剛剛創建符號鏈接到正確的路徑,但無論如何,它給我出了同樣的錯誤。

+0

沒有安裝contrib模塊? –

+0

@CraigRinger默認情況下安裝Contrib模塊。我在我的文件系統中找到了hstore.control。 – kuatro

回答

0

好吧,我剛剛創建了一個符號鏈接,重新安裝了gem pg,現在一切正常。

+0

什麼是符號鏈接中的導出變量?我有同樣的問題 –

+0

@RonakJain你只需要在/ usr/share/postgresql/9.3/extension /' – kuatro

+1

中創建'hstore.control'的實際位置的符號鏈接,你能告訴我該怎麼做嗎? –

27

解決方法很簡單,只需安裝PostgreSQL-contrib請在您的操作系統,然後運行,因爲它在此處顯示Rails 4 PostgreSQL integration遷移或者你使用任何其他方式。 例如,如果你使用的是Ubuntu的將是:

sudo apt-get install postgresql-contrib-X.X 

其中x.x表示您正在使用PostgreSQL的版本。如果它是版本9.3它是:

sudo apt-get install postgresql-contrib-9.3 

我也認爲對於MAC OS是幾乎相同的,只有你會使用brew。

+0

是的,在安裝postgresql-contrib-9.3 – CodecPM

+0

後有效,這個答案拯救了我的生命,遇到了這個確切的錯誤,我甚至沒有考慮使用contrib版本而不是標準版本。例如:Migrations(和所有rake命令)在安裝postgres-9.4時失敗,但是當我清除並安裝了postgres-contrib-9.4時,所有工作都正常。謝謝。 – geostima