创建具有多个模式的HSTORE[英] Create HSTORE with multiple schemas

本文是小编为大家收集整理的关于创建具有多个模式的HSTORE的处理方法,想解了创建具有多个模式的HSTORE的问题怎么解决?创建具有多个模式的HSTORE问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我一直在尝试将我的数据库迁移到具有 HSTORE 但扩展仅适用于 public SCHEMA 当我想在其他架构中添加 HSTORE 列时它不起作用

def up
  # My hstore looks like this
  execute "CREATE EXTENSION hstore SCHEMA public"
  # I have also tried
  # execute "CREATE EXTENSION hstore"
end

但是当我运行下一次迁移时,它不起作用,如果我转到 psql 控制台并更改表,我会得到:

set search_path to public;
alter table accounts add column extras hstore; -- Works fine
set search_path to schema2;
alter table accounts add column extras hstore; -- Raises an error

我正在使用 Rails 4谢谢.

推荐答案

您需要以与您的架构命名和搜索路径一致的方式引用您的对象.例如:

CREATE EXTENSION hstore SCHEMA public;

SET search_path TO schema2;
ALTER TABLE accounts ADD COLUMN extras public.hstore;

SET search_path TO public;
ALTER TABLE schema2.accounts ADD COLUMN extras hstore;

本文地址:https://www.itbaoku.cn/post/1764127.html