업데이트 대기 중인 확장 찾기 및 업데이트
PostgreSQL익스텐션명령어
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;하는 일
데이터베이스에 설치된 각 확장의 버전을 서버 패키지의 기본 버전과 비교하고, 업데이트 대기 중인 확장에 대한 ALTER EXTENSION 명령을 생성한다.
사용 시점
PostgreSQL 마이너/메이저 업그레이드 및 확장 패키지 업데이트 후, 정기 유지보수 시.
주의
OS 패키지를 업그레이드해도 SQL 측은 자동으로 업데이트되지 않는다. ALTER EXTENSION ... UPDATE를 데이터베이스마다 별도로 실행해야 한다(특히 pg_upgrade 후 중요). 업데이트 스크립트는 락을 잡고 객체를 변경할 수 있으므로(예: PostGIS) 먼저 테스트하고 릴리스 노트를 읽는다. 특정 버전으로 이동: ALTER EXTENSION pgstattuple UPDATE TO '1.5'; 일부 확장(예: pg_stat_statements)은 공유 라이브러리를 다시 로드하기 위해 재시작도 필요하다.