我在远程服务器上设置了一个 Rails 应用程序并创建了一个 hstore 扩展
sudo -u postgres psql
CREATE EXTENSION hstore;
然后,我在其中一个 postgres 表中部署了使用 hstore 的应用程序的迭代,但是当它运行迁移时,它给出了一条错误消息
PG::UndefinedObject: ERROR: type "hstore" does not exist
然后我再次尝试这样做
sudo -u postgres psql
CREATE EXTENSION hstore;
但它告诉我 hstore 已经存在
ERROR: extension "hstore" already exists
这个圈子还在继续。
知道可能导致此问题的原因是什么吗?我在 Ubuntu 12.04 服务器上使用 postgres 9.1
更新 说明,想知道这个问题是否与权限有关,我尝试像这样检查我的权限,但出现以下错误
sudo -u postgres psql -U username
psql: FATAL: Peer authentication failed for user "username"
更新 虽然安装了 hstore,但它不是我正在使用的数据库的扩展。如何将它安装在特定的数据库中?
psql -d db_production -c '\dx'
List of installed extensions
Name | Version | Schema | Description
---------+---------+------------+------------------------------
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
(1 row)