我收到此错误:
pg_restore: [archiver (db)] Error while PROCESSING TOC: pg_restore: [archiver (db)] Error from TOC entry 4034; 0 0 COMMENT EXTENSION pg_trgm pg_restore: [archiver (db)] could not execute query: ERROR: must be owner of extension pg_trgm Command was: COMMENT ON EXTENSION pg_trgm IS 'text similarity measurement and index searching based on trigrams';
当我运行以下命令时:
PGPASSWORD="$db_pwd" createdb -U "$db_user" -h "$db_host" -p 5432 --no-password -e "$db_name"
如何修复?我认为正确的做法是让自己成为pg_trgm
扩展的所有者,但是如何呢?
导致此错误的不是createdb
命令,而是pg_restore
。
这意味着您以非超级用户身份从扩展名为pg_trgm
的数据库中还原了转储。
扩展本身恢复为
CREATE EXTENSION IF NOT EXISTS pg_trgm;
因此,如果扩展已经存在,这不会导致错误,但是以下
COMMENT ON EXTENSION pg_trgm IS '...';
将导致非超级用户出错。
您可以安全地忽略此错误。