Ruby on rails 轨道4+;PostgreSQL hstore,can';t执行“;创建扩展hstore";
我已通过以下方式在MacOS X上安装了RubyOnRails 4.1.4和PostgreSQL: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
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时,一切都正常。谢谢