DBAtlas · Atlas de operaciones de bases de datos

Encontrar las extensiones con actualizaciones pendientes y actualizarlas

PostgreSQLExtensiones

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;

Qué hace

Compara la versión instalada de cada extensión en la base de datos con la versión por defecto del paquete en el servidor, y genera el comando ALTER EXTENSION para las que tienen actualizaciones pendientes.

Cuándo usarlo

Tras upgrades menores/mayores de PostgreSQL y actualizaciones de paquetes de extensiones, y durante el mantenimiento periódico.

Precaución

Actualizar el paquete del SO no actualiza automáticamente la parte SQL; ALTER EXTENSION ... UPDATE debe ejecutarse por separado en cada base de datos (especialmente importante tras pg_upgrade). El script de actualización puede tomar bloqueos y modificar objetos (p. ej., PostGIS); pruébelo primero y lea las release notes. Para pasar a una versión concreta: ALTER EXTENSION pgstattuple UPDATE TO '1.5'; Algunas extensiones (p. ej., pg_stat_statements) también requieren un reinicio para recargar la shared library.

Abrir en DBAtlas →

Relacionado