2014-07-10 45 views
6

mam RubyOnRails 4.1.4 i PostgreSQL zainstalowane na MacOS X poprzez:Szyny 4 + PostgreSQL hstore, nie można wykonać "CREATE EXTENSION hstore"

brew install postgresql 

Kiedy próbuję przenieść ten jeden:

CREATE EXTENSION hstore 

daje się mi błąd:

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

starałem się znaleźć "hstore.control" w systemie plików za pomocą:

find/-name "hstore.control" 

i okazało się, że plik ten znajduje się w inną ścieżkę:

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

Więc jak mogę przedefiniować konfiguracji „PG” Gem, aby skorygować ścieżkę rozszerzenia hstore? Właśnie próbował wyjąć gem i zainstalować go z:

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

Ale to nie działa. Nadal mam ten sam błąd.

Z góry dziękuję.

UPDATE:

Właśnie stworzył dowiązaniem do poprawnej ścieżki, ale mimo to daje mi ten sam błąd.

+0

Nie zainstalowałeś modułów contrib? –

+0

Moduły programu Contra @CraigRinger instalują się domyślnie. Znalazłem hstore.control w moim systemie plików. – kuatro

Odpowiedz

0

OK, właśnie utworzyłem dowiązanie symboliczne, ponownie zainstalowałem klejnot pg, a teraz wszystko działa poprawnie.

+0

jaka jest zmienna eksportu w twoim dowiązaniu symbolicznym? Mam ten sam problem –

+0

@RonakJain wystarczy utworzyć dowiązanie symboliczne faktycznej lokalizacji 'hstore.control' w'/usr/share/postgresql/9.3/extension/' – kuatro

+1

czy możesz powiedzieć jak to zrobić? –

27

Rozwiązanie jest proste, wystarczy zainstalować postgresql-contrib w swoim systemie operacyjnym, a następnie uruchomić migrację jak to jest pokazane tutaj Rails 4 PostgreSQL integration lub dowolny inny sposób przy użyciu. Na przykład, jeśli używasz Ubuntu będzie:

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

gdzie x.x jest wersja PostgreSQL, że używasz. Jeśli jest to wersja 9.3 to:

sudo apt-get install postgresql-contrib-9.3 

Myślę również dla Mac OS jest prawie taki sam, tylko że będziesz używać naparu.

+0

Tak, po zainstalowaniu Postgresql-contrib-9.3 – CodecPM

+0

to rozwiązanie zadziałało, uratowało mi życie, miał dokładnie ten błąd i nawet nie myślałem o używaniu wersji contrib zamiast standardowej. np .: Migracje (i wszystkie komendy rake'u) nie powiodły się z zainstalowanym postgres-9.4, ale wszystko działało, gdy je wyczyściłem i zainstalowałem postgres-contrib-9.4. Dzięki. – geostima