我的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
但它没有用。我仍然有同样的错误。
提前谢谢。
更新:
我刚刚创建了符号链接来修正路径,但无论如何它给了我同样的错误。
答案 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。
答案 2 :(得分:-1)
好的,我刚刚创建了一个符号链接,重新安装了gem pg
,现在一切正常。