Rails 4 + PostgreSQL hstore,无法执行" CREATE EXTENSION hstore"

时间:2014-07-10 06:31:06

标签: ruby-on-rails postgresql rvm pg hstore

我的MacOS X上安装了RubyOnRails 4.1.4和PostgreSQL:

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" gem的配置来纠正hstore扩展的路径? 我只是尝试删除gem并安装它:

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

但它没有用。我仍然有同样的错误。

提前谢谢。

更新:

我刚刚创建了符号链接来修正路径,但无论如何它给了我同样的错误。

3 个答案:

答案 0 :(得分:28)

解决方案很简单,只需在您的操作系统中安装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。

答案 1 :(得分:3)

此链接帮助了我。我们需要在尝试创建HStore扩展之前安装postgresql-contrib。

https://gist.github.com/terryjray/3296171

答案 2 :(得分:-1)

好的,我刚刚创建了一个符号链接,重新安装了gem pg,现在一切正常。