我一直在努力使用PostgreSql和hstore扩展名,因此在我的sql转储文件中,hstore字段是使用以下脚本创建的:
CREATE EXTENSION IF NOT EXISTS hstore WITH SCHEMA public;
CREATE TABLE public.identity_devices (
...
metadata public.hstore
);
所以我遇到了错误
structure.sql:2058: ERROR: type "public.hstore" does not exist
但如果我使用
metadata hstore
一切正常。
此外,还必须注意,这仅在以用户runner
身份运行的CI上发生,而public
模式的所有者是postgres
。
如果需要更多数据,请告诉我,我会提供。
此致
答案 0 :(得分:1)
您可以使用命令\dx hstore
答案 1 :(得分:1)
在使用Postgres9.3时,我们必须在创建Db时安装hstore manually, on our CI they use Postgres9.6 which automatically add
hstore`。
此外,它还将hstore
放在命名空间pg_catalog
中,这是hstore
无法看到public.hstore
的主要原因。
所以我要做的是在CI上创建数据库后执行一个步骤,该操作将删除特定的扩展名并在正确的架构中创建一个新的扩展名。
无论如何,问题并没有棘手和奇怪。