我通过以下方式在我的 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
但是没有用。我仍然有同样的错误。
提前谢谢你。
更新:
我刚刚创建了符号链接(symbolic link)来更正路径,但无论如何它给了我同样的错误。
最佳答案
解决方案很简单,只需在您的操作系统中安装 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。
关于ruby-on-rails - Rails 4 + PostgreSQL hstore,无法执行 "CREATE EXTENSION hstore",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24669862/