Postgresql createdb/pg_还原有错误:必须是扩展的所有者

Postgresql createdb/pg_还原有错误:必须是扩展的所有者,postgresql,amazon-rds,postgresql-9.5,Postgresql,Amazon Rds,Postgresql 9.5,我得到这个错误: 运行此命令时: PGPASSWORD="$db_pwd" createdb -U "$db_user" -h "$db_host" -p 5432 --no-password -e "$db_name" 我该怎么修理?我认为正确的做法是让自己成为pg\u trgm扩展的所有者,但是怎么做呢 导致此错误的不是createdb命令,而是pg\u restore 这意味着您以非超级用户的身份从具有pg_trgm扩展名的数据库中恢复转储 扩展本身恢复为 CREATE EXTENSIO

我得到这个错误:

运行此命令时:

PGPASSWORD="$db_pwd" createdb -U "$db_user" -h "$db_host" -p 5432 --no-password -e "$db_name"
我该怎么修理?我认为正确的做法是让自己成为
pg\u trgm
扩展的所有者,但是怎么做呢

导致此错误的不是
createdb
命令,而是
pg\u restore

这意味着您以非超级用户的身份从具有
pg_trgm
扩展名的数据库中恢复转储

扩展本身恢复为

CREATE EXTENSION IF NOT EXISTS pg_trgm;
因此,如果扩展已经存在,这不会导致错误,但是

COMMENT ON EXTENSION pg_trgm IS '...';
将导致非超级用户出错

您可以安全地忽略此错误。

导致此错误的不是
createdb
命令,而是
pg\u restore

这意味着您以非超级用户的身份从具有
pg_trgm
扩展名的数据库中恢复转储

扩展本身恢复为

CREATE EXTENSION IF NOT EXISTS pg_trgm;
因此,如果扩展已经存在,这不会导致错误,但是

COMMENT ON EXTENSION pg_trgm IS '...';
将导致非超级用户出错


您可以安全地忽略此错误。

据推测,
pg_restore--clean
选项在这里会有所帮助,因为我的测试正在进行。问题是pg_restore将以非零退出,除非我告诉它以某种方式忽略该错误。只有当您是超级用户(可以创建和删除此扩展)时,--clean选项才能实现这一点。但是作为一个超级用户,你无论如何也不会得到错误。据我的测试,假定
pg_restore--clean
选项在这里会有所帮助。问题是pg_restore将以非零退出,除非我告诉它以某种方式忽略该错误。只有当您是超级用户(可以创建和删除此扩展)时,--clean选项才能实现这一点。但是作为一个超级用户,你无论如何也不会得到这个错误。