PostgreSQL 12は2019年10月3日にリリースされたメジャーバージョンです。2024年11月21日にサポートが終了しており、現在はセキュリティパッチが一切提供されていません。PostgreSQL 12 を本番環境で継続利用することはセキュリティリスクを伴います。PostgreSQL 17 または 18 への移行を早急に実施してください。
PostgreSQL 12 のサポート期限一覧
| バージョン | リリース日 | EOL日 | 現在のステータス |
|---|---|---|---|
| PostgreSQL 12(対象) | 2019-10-03 | 2024-11-21 | 終了済み |
| PostgreSQL 13 | 2020-09-24 | 2025-11-13 | 終了済み |
| PostgreSQL 14 | 2021-09-30 | 2026-11-12 | 残り約6ヶ月 |
| PostgreSQL 15 | 2022-10-13 | 2027-11-11 | サポート中 |
| PostgreSQL 16 | 2023-09-14 | 2028-11-09 | サポート中 |
| PostgreSQL 17(推奨) | 2024-09-26 | 2029-11-08 | サポート中 |
| PostgreSQL 18(最新) | 2025-09-25 | 2030-11-14 | サポート中 |
PostgreSQL のサポートポリシー
PostgreSQL Global Development Group は、メジャーバージョンのリリースから5年間サポートを提供します。延長サポートオプションは存在せず、EOL 日を過ぎると新しいセキュリティパッチは一切提供されなくなります。
基本情報
- リリース日: 2019年10月3日
- 最終パッチバージョン: 12.22(EOL時の最終リリース)
- 後継バージョン: PostgreSQL 17(推奨)、PostgreSQL 18(最新)
- 延長サポート: なし
- 主な機能: 生成列(Generated Columns)・カバリングインデックス(INCLUDE)・JSON パス式・パーティションテーブルの外部キー対応
- ライセンス: PostgreSQL License(BSD ライク)
EOL 後のリスク
2024年11月21日以降、PostgreSQL 12 に対するセキュリティパッチとバグ修正の提供は完全に停止しています。現時点で PostgreSQL 12 を本番環境で運用することは、未修正の脆弱性にさらされているリスクがあります。
1. 未修正の CVE が蓄積し続ける
EOL 後に発見された PostgreSQL の CVE は PostgreSQL 12 には適用されません。SQL インジェクション・権限昇格・情報漏洩に関わる脆弱性が修正されないまま放置されます。特に外部ネットワークからアクセス可能なデータベースや、個人情報・財務データを扱うシステムは早急な対応が必要です。
2. 拡張機能・ドライバーのサポート終了
PostGIS・pgvector・pg_partman などの主要拡張機能は PostgreSQL 12 向けの新バージョンリリースを終了しています。psycopg・asyncpg・JDBC などのクライアントドライバーも PostgreSQL 12 の動作検証対象から外れています。クラウドマネージドサービス(Amazon RDS・Azure Database・Google Cloud SQL)でも PostgreSQL 12 の新規インスタンス作成はすでに制限されています。
3. コンプライアンス違反のリスク
PCI DSS・ISO 27001・SOC 2 等の審査において、EOL ソフトウェアの利用は「サポートされていないコンポーネントの使用」として指摘対象となります。金融・医療・官公庁向けシステムでは取引先や監督機関からの是正要求につながるケースもあります。
推奨される移行先
PostgreSQL 12 からは pg_upgrade を使って 17 へ直接アップグレード可能です。今すぐ移行計画を立てて実行してください。
PostgreSQL 17 — 推奨(実績と安定性)
- EOL: 2029年11月8日
- 最新パッチ: 17.10
- メリット: リリースから約1年半が経過し実績が豊富。インクリメンタルバックアップ・JSON_TABLE・COPY 改善など多くの新機能。主要拡張機能とクラウドサービスが充実対応
- 適したケース: 安定した移行先を求める場合
PostgreSQL 18 — 最長サポート(最新機能)
- EOL: 2030年11月14日
- 最新パッチ: 18.4
- メリット: 非同期 I/O の大幅改善・OAuth 2.0 認証・SQL/JSON 全機能対応。EOL まで最も長い
- 注意点: リリースから日が浅いため、利用する拡張機能の対応状況を事前確認
移行時の注意点
pg_upgrade による移行pg_upgrade で PostgreSQL 12 → 17 への直接アップグレードが可能です。移行前に pg_upgrade --check を実行して非互換箇所を事前確認し、必ずバックアップを取得してください。--link オプションでハードリンクを使うと大容量データベースでも移行時間を短縮できます。
主な非互換変更点(12 → 17)
PostgreSQL 13 以降で廃止された WITH OIDS テーブルオプション、PostgreSQL 15 で変更された public スキーマのデフォルト権限(CREATE 権限の削除)、PostgreSQL 16 以降の論理レプリケーション設定の変更などが影響する場合があります。各バージョンのリリースノートで確認してください。
拡張機能の確認SELECT * FROM pg_extension; で現在の拡張機能をリストアップし、移行先バージョンへの対応バージョンが存在するか確認してください。
物理サーバーの更新か、マネージドサービスへの移行か
PostgreSQL 12 がすでに EOL を迎えているため、セルフホスト環境では OS も含めた環境の全面刷新を合わせて検討することを推奨します。クラウドマネージドサービスへの移行により、バックアップ・フェイルオーバー・パッチ適用の運用負荷を削減しながら、最新バージョンへの継続的なアップグレードが容易になります。