Я пытаюсь обновить систему с Postgresql 9.6 до Postgresql 13, используя pg_upgrade, поставляемый с Postgresql 13. Это обновление завершается ошибкой:
Your installation references loadable libraries that are missing from the new installation. You
can add these libraries to the new installation,
or remove the functions using them from the old installation. A list of
problem libraries is in the file:
loadable_libraries.txt
Failure, exiting
-bash-4.2$ cat loadable_libraries.txt
could not load library "$libdir/plpython2": ERROR: could not access file "$libdir/plpython2": No such file or directory
In database: infohub
Мне эта ошибка кажется очевидной, база данных infohub использует расширение plpython2, которое не установлено (и даже не существует) для postgresql 13.
Моя проблема в том, что я попытался удалить расширение, но pg_upgrade по-прежнему не работает с указанной выше ошибкой.
postgres=# \c infohub
psql (13.0, server 9.6.19)
You are now connected to database "infohub" as user "postgres".
infohub=# DROP EXTENSION plpythonu CASCADE ;
DROP EXTENSION
Я попытался использовать этот оператор, чтобы проверить, есть ли какая-либо функция
infohub=# select DISTINCT l.lanname as function_language
from pg_proc p
left join pg_language l on p.prolang = l.oid
;
function_language
-------------------
internal
sql
c
plpgsql
(4 rows)
Насколько я могу судить, нет функций, которые зависят от plpythonu (или plpython2), однако pg_upgrade по-прежнему дает мне указанную выше ошибку об отсутствующем расширении.
Приветствуется любая помощь или идея.