Обсуждение: BUG #16738: Migration from 12th to 13th version. pg_upgrade error (relation "pg_catalog.pg_pltemplate")

Поиск
Список
Период
Сортировка

BUG #16738: Migration from 12th to 13th version. pg_upgrade error (relation "pg_catalog.pg_pltemplate")

От
PG Bug reporting form
Дата:
The following bug has been logged on the website:

Bug reference:      16738
Logged by:          Sergey Zhuravlev
Email address:      snzhuravlev@gmail.com
PostgreSQL version: 12.5
Operating system:   CentOS Linux release 7.9.2009 (Core)
Description:

Hello.

Checking
$ /usr/pgsql-13/bin/pg_upgrade --old-datadir=/u01/12/data/
--new-datadir=/u01/13/data/ --old-bindir=/usr/pgsql-12/bin
--new-bindir=/usr/pgsql-13/bin --old-options '-c
config_file=/u01/12/data/postgresql.conf' --new-options '-c
config_file=/u01/13/data/postgresql.conf' --check
Performing Consistency Checks on Old Live Server
------------------------------------------------
Checking cluster versions                                   ok
Checking database user is the install user                  ok
Checking database connection settings                       ok
Checking for prepared transactions                          ok
Checking for reg* data types in user tables                 ok
Checking for contrib/isn with bigint-passing mismatch       ok
Checking for presence of required libraries                 ok
Checking database user is the install user                  ok
Checking for prepared transactions                          ok
Checking for new cluster tablespace directories             ok

*Clusters are compatible*
---------------------
Link
$ /usr/pgsql-13/bin/pg_upgrade --old-datadir=/u01/12/data/
--new-datadir=/u01/13/data/ --old-bindir=/usr/pgsql-12/bin
--new-bindir=/usr/pgsql-13/bin --old-options '-c
config_file=/u01/12/data/postgresql.conf' --new-options '-c
config_file=/u01/13/data/postgresql.conf' --link
Error
"...
pg_restore: creating ACL "pg_catalog.TABLE "pg_partitioned_table""
pg_restore: creating ACL "pg_catalog.TABLE "pg_pltemplate""
pg_restore: while PROCESSING TOC:
pg_restore: from TOC entry 12691; 0 0 ACL TABLE "pg_pltemplate" postgres
pg_restore: error: could not execute query: ERROR:  relation
"pg_catalog.pg_pltemplate" does not exist
Command was: GRANT ALL ON TABLE "pg_catalog"."pg_pltemplate" TO
"dhw_admin";
"


сб, 21 нояб. 2020 г. в 14:48, PG Bug reporting form <noreply@postgresql.org>:

Error
...
pg_restore: creating ACL "pg_catalog.TABLE "pg_partitioned_table""
pg_restore: creating ACL "pg_catalog.TABLE "pg_pltemplate""
pg_restore: while PROCESSING TOC:
pg_restore: from TOC entry 12691; 0 0 ACL TABLE "pg_pltemplate" postgres
pg_restore: error: could not execute query: ERROR:  relation
"pg_catalog.pg_pltemplate" does not exist
Command was: GRANT ALL ON TABLE "pg_catalog"."pg_pltemplate" TO
"dhw_admin";

This is not a PostgreSQL issue. You have granted custom permissions to a catalog table.
There is an attempt to transfer your grant, but in 13 there is no more pg_pltemplate catalog, thus the error.

You need to revoke this grant on the 12 database before performing pg_upgrade.
 
--
Victor Yegorov