PostgreSQL 17は2024年9月26日にリリースされた現行推奨バージョンです。サポート終了日は2029年11月8日であり、残り約3年半のサポート期間があります。リリースから約1年半が経過し、主要な拡張機能・クラウドマネージドサービスの対応が充実しているため、古いバージョンからの移行先として最も推奨されます。本記事では、PostgreSQL 17の主な特徴とサポートスケジュールを解説します。
PostgreSQL 17 のサポート期限一覧
| バージョン | リリース日 | EOL日 | 現在のステータス |
|---|---|---|---|
| PostgreSQL 14 | 2021-09-30 | 2026-11-12 | 残り約6ヶ月 |
| PostgreSQL 15 | 2022-10-13 | 2027-11-11 | 残り約18ヶ月 |
| PostgreSQL 16 | 2023-09-14 | 2028-11-09 | 残り約2年半 |
| PostgreSQL 17(推奨) | 2024-09-26 | 2029-11-08 | 残り約3年半 |
| PostgreSQL 18(最新) | 2025-09-25 | 2030-11-14 | サポート中 |
PostgreSQL のサポートポリシー
PostgreSQL Global Development Group は、メジャーバージョンのリリースから5年間サポートを提供します。延長サポートオプションは存在せず、毎年秋(11月頃)に全サポート対象バージョンの同時パッチリリースが行われます。
基本情報
- リリース日: 2024年9月26日
- 最新パッチバージョン: 17.10
- 後継バージョン: PostgreSQL 18(2025年9月リリース)
- 延長サポート: なし
- 主な新機能: インクリメンタルバックアップ(pg_combinebackup)・JSON_TABLE 関数・COPY の ON_ERROR ignore(エラー行スキップ)・VACUUM のメモリ管理改善・論理レプリケーションのフェイルオーバー対応(failover=true)・MERGE の RETURNING 句対応
- ライセンス: PostgreSQL License(BSD ライク)
PostgreSQL 17 の主な改善点
PostgreSQL 17 は運用性と開発効率を大幅に向上させる機能が多数追加されています。
1. インクリメンタルバックアップ
pg_basebackup でインクリメンタルバックアップが可能になりました。フルバックアップの後、差分のみをバックアップすることで、バックアップ時間とストレージ使用量を大幅に削減できます。pg_combinebackup コマンドで差分バックアップを結合してリストアします。大容量データベースを運用する場合に特に効果的です。
2. COPY の ON_ERROR ignore(エラー行スキップ)
COPY コマンドに ON_ERROR ignore オプションが追加され、変換エラーのある行をスキップして処理を継続できるようになりました。LOG_VERBOSITY オプションでスキップされた行をログに記録でき、pg_stat_progress_copy.tuples_skipped で処理中のスキップ数を監視できます。大量データの一括インポート時のエラー対処が大幅に楽になります。
3. JSON_TABLE 関数
標準 SQL の JSON_TABLE 関数が追加され、JSON データをリレーショナルテーブルとして扱いやすくなりました。JSON カラムに格納されたデータを通常の SQL で集計・結合する処理が簡潔に記述できます。
古いバージョンからの移行方法
PostgreSQL 12 以降から PostgreSQL 17 へは pg_upgrade で直接アップグレード可能です。
pg_upgrade による移行(推奨)
- 移行前に
pg_upgrade --checkで非互換箇所を事前確認 --linkオプションでハードリンクを使うと大容量 DB でも移行時間を短縮- アップグレード後に
vacuumdb --all --analyze-in-stagesで統計情報を更新
ロジカルレプリケーションによるゼロダウンタイム移行
- 新バージョンのインスタンスを別途用意し、ロジカルレプリケーションで差分を同期しながらカットオーバー
- PostgreSQL 17 ではフェイルオーバー時の論理レプリケーションスロットの引き継ぎが改善されており、移行後の信頼性が向上
移行時の注意点
public スキーマ権限(PostgreSQL 15 以降の変更)
PostgreSQL 15 で public スキーマのデフォルト CREATE 権限が削除されました。PostgreSQL 14 以前から移行する場合、アプリケーションが public スキーマに暗黙的に依存している箇所への明示的な GRANT 文の追加が必要になるケースがあります。
拡張機能の確認SELECT * FROM pg_extension; で現在の拡張機能をリストアップし、移行先バージョンへの対応バージョンが存在するか確認してください。PostgreSQL 17 は主要拡張機能の対応が充実しています。
物理サーバーの更新か、マネージドサービスへの移行か
PostgreSQL 17 はリリース実績が積み重なり、Amazon Aurora PostgreSQL・Azure Database for PostgreSQL・Google Cloud SQL などのマネージドサービスでも対応が充実しています。セルフホストからマネージドサービスへの移行と合わせてバージョンアップを行うと、運用負荷を大幅に削減できます。