DBAtlas · Atlas de operações de banco de dados

Encontrar extensões com atualizações pendentes e atualizá-las

PostgreSQLExtensões

Comando

SELECT e.extname,
       e.extversion AS installed,
       a.default_version AS available,
       n.nspname AS schema_name,
       format('ALTER EXTENSION %I UPDATE;', e.extname) AS fix
FROM pg_extension e
JOIN pg_available_extensions a ON a.name = e.extname
JOIN pg_namespace n ON n.oid = e.extnamespace
WHERE e.extversion IS DISTINCT FROM a.default_version
ORDER BY e.extname;

-- Is there an update path?
SELECT * FROM pg_extension_update_paths('pgstattuple') WHERE path IS NOT NULL;

ALTER EXTENSION pgstattuple UPDATE;

O que faz

Compara a versão instalada de cada extensão no banco com a versão padrão do pacote no servidor e gera o comando ALTER EXTENSION para as que têm atualizações pendentes.

Quando usar

Após upgrades minor/major do PostgreSQL e atualizações de pacotes de extensões e durante a manutenção periódica.

Atenção

Atualizar o pacote do SO não atualiza o lado SQL automaticamente; ALTER EXTENSION ... UPDATE deve ser executado em cada banco separadamente (especialmente importante após o pg_upgrade). O script de atualização pode obter locks e alterar objetos (ex.: PostGIS); teste-o antes e leia as notas de versão. Para ir para uma versão específica: ALTER EXTENSION pgstattuple UPDATE TO '1.5'; Algumas extensões (ex.: pg_stat_statements) também exigem restart para recarregar a biblioteca compartilhada.

Abrir no DBAtlas →

Relacionados