带有公共前缀的PostgreSql hstore扩展问题
我一直在努力使用PostgreSql和hstore扩展,因此在我的sql转储文件中,hstore字段是用以下脚本创建的:带有公共前缀的PostgreSql hstore扩展问题,postgresql,database-schema,Postgresql,Database Schema,我一直在努力使用PostgreSql和hstore扩展,因此在我的sql转储文件中,hstore字段是用以下脚本创建的: CREATE EXTENSION IF NOT EXISTS hstore WITH SCHEMA public; 所以我得到了一个错误 structure.sql:2058: ERROR: type "public.hstore" does not exist 但万一我用 metadata hstore 一切正常 另外,需要注意的是,这只发生在我们的CI上,我们作为
CREATE EXTENSION IF NOT EXISTS hstore WITH SCHEMA public;
所以我得到了一个错误
structure.sql:2058: ERROR: type "public.hstore" does not exist
但万一我用
metadata hstore
一切正常
另外,需要注意的是,这只发生在我们的CI上,我们作为用户运行者运行,但是public
模式的所有者是postgres
如果需要更多的数据,请让我知道,我会提供
关于,您可以使用命令\dx hstore
检查扩展是否已经安装,以及在何处安装。当我们使用Postgres9.3时,我们必须手动安装hstore,在我们的CI上,他们使用Postgres9.6,在Db创建时自动添加
hstore`
此外,它将hstore
放在命名空间pg_catalog
中,这是hstore
无法被public.hstore
看到的主要原因
所以我要做的是在CI上创建db之后再做一步,删除特定的扩展并在正确的模式中创建新的扩展
不管怎么说,这个问题并不是那么难,而是棘手而怪异 当我们使用Postgres9.3时,我们必须手动安装hstore,在我们的CI上,他们使用Postgres9.6,在创建数据库时自动添加
hstore`
此外,它将hstore
放在命名空间pg_catalog
中,这是hstore
无法被public.hstore
看到的主要原因
所以我要做的是在CI上创建db之后再做一步,删除特定的扩展并在正确的模式中创建新的扩展
不管怎么说,这个问题并不是那么难,而是棘手而怪异 可能它已安装在另一个架构中?请尝试\dx hstore
@JGH是的。结果表明,默认情况下,Postgres9.6在pg_catalog
命名空间中包含此扩展,因此使用前缀public
调用时不可见。可能它已安装在另一个架构中?请尝试\dx hstore
@JGH是的。结果表明,默认情况下,Postgres9.6在pg_catalog
命名空间中包含此扩展,因此使用前缀public
调用时不可见。再次感谢。主要问题是位置不对。再次感谢。主要问题是位置不对。
metadata hstore