无法将 hstore 扩展安装到新创建的架构



我有一个安装了postgres 9.5的ubuntu 18.04。

我的数据库"mydb"安装了hstore。当我做"\dx存储"时,我确实有

List of installed extensions
  Name  | Version | Schema |                   Description                    
--------+---------+--------+--------------------------------------------------
hstore | 1.3     | public | data type for storing sets of (key, value) pairs
(1 row)

当我对某个备份文件进行pg_restore时,会创建一个也称为"mydb"的新模式,但它不包含"hstore"扩展名。"\dx"命令的结果是相同的。hstore 已经在我的模板 1 中。

pg_restore失败,并显示

pg_restore:[存档程序 (db(] 无法执行查询:错误:"hstore"类型不存在

谁能指出问题出在哪里?

谢谢

备份是用相同版本的 postgresql 创建的吗?转储/还原周期通常假定数据库是预先创建的,但转储应创建扩展。是否可以搜索备份以查看它是否包含为架构创建扩展的指令:

     CREATE EXTENSION IF NOT EXISTS hstore WITH SCHEMA public;
  • 您需要使用 pg_restore 命令来输入标准输出,例如

    pg_restore mydump.dump|more
    

如果不使用公共架构,则可能还需要检查架构是否已在扩展之前创建。

在还原之前,您可以尝试以下方法在mydb架构中创建hstore扩展吗?

     CREATE EXTENSION IF NOT EXISTS hstore WITH SCHEMA mydb;

或者,hstore 扩展可能无法正确安装。

    # locate hstore|grep postgresql
    # dpkg -S /path/to/hstore.so

相关内容

  • 没有找到相关文章

最新更新