Ruby on rails 轨道4+;PostgreSQL hstore,can';t执行“;创建扩展hstore";

Ruby on rails 轨道4+;PostgreSQL hstore,can';t执行“;创建扩展hstore";,ruby-on-rails,postgresql,rvm,pg,hstore,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 f

我已通过以下方式在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
但它不起作用。我仍然有同样的错误

先谢谢你

更新:


我刚刚创建了一个符号链接来纠正路径,但不管怎样,它给出了相同的错误。

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

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


解决方案很简单,只需在操作系统中安装postgresql contrib,然后按照此处所示或您使用的任何其他方式运行迁移。 例如,如果您正在使用ubuntu,它将是:

sudo apt-get install postgresql-contrib-X.X
其中X.X是您正在使用的postgresql版本。如果是9.3版,则应:

sudo apt-get install postgresql-contrib-9.3

我还认为MAC操作系统几乎相同,只是您将使用brew。

没有安装contrib模块?@CraigRinger contrib Module默认安装。我在文件系统中找到了hstore.control。符号链接中的导出变量是什么?我有同样的problem@RonakJain你只需要在
/usr/share/postgresql/9.3/extension/
中创建一个
hstore.control
的实际位置的符号链接,你能告诉我怎么做吗?是的,在安装了postgresql-contrib-9.3之后它就可以工作了。这个答案救了我的命,有一个确切的错误,我甚至没有想到使用contrib版本而不是标准版本。例如:安装了postgres-9.4后迁移(以及所有rake命令)失败,但当我清除并安装了postgres-contrib-9.4时,一切都正常。谢谢