Tutoriel

PostgreSQL 19 retardé : impact sur vos apps self-hosted

Bases de données11 min de lecture8 étapes

Le 24 septembre 2026, le projet PostgreSQL a publié la bêta 4 de PostgreSQL 19 avec une liste inattendue : 53 fonctionnalités retirées du périmètre de la release et une date de disponibilité générale repoussée à fin octobre 2026. Pour les équipes qui planifiaient un saut PG 17 → PG 19 avant la fin d'année, ce signal change les calculs. Cet article détaille ce qui a été retiré, pourquoi ça compte pour les stacks self-hébergées, et quelle est la cible de migration la plus saine aujourd'hui.

Sommaire· Le signal du 24 septembre : bêta 4 et fonctionnalités retirées1/16
  1. 01Le signal du 24 septembre : bêta 4 et fonctionnalités retirées
  2. 02Ce qui a été retiré et pourquoi ça compte
  3. 03Les retraits qui affectent les développeurs applicatifs
  4. 04Pourquoi ces retraits n'invalident pas PG 19
  5. 05Impact concret par stack self-hébergée
  6. 06Version PostgreSQL requise par application self-hosted
  7. 07La recommandation : PostgreSQL 18 est la cible intermédiaire saine
  8. 08Guide de migration PG 16/17 → PG 18
  9. 09Étapes de migration PG 16 ou PG 17 vers PG 18
  10. 10Vérifier sa version PostgreSQL en production
  11. 11Commandes de diagnostic de version
  12. 12Planifier la migration vers PG 19 : timeline et précautions
  13. 13Préparer son VPS pour PG 18 avec Docker
  14. 14Déployer PG 18 sur VPS avec Docker Compose
  15. 15Un VPS avec accès root vous donne la marge que le managé n'a pas
  16. 16Conclusion : agir maintenant, pas après la GA de PG 19

Le signal du 24 septembre : bêta 4 et fonctionnalités retirées

La bêta 4 de PostgreSQL 19 est sortie le 24 septembre 2026 sur postgresql.org/about/news/. Le cycle habituel d'une release PostgreSQL prévoit 3 à 4 bêtas avant la disponibilité générale en octobre ; une quatrième bêta en septembre signale que le projet n'a pas atteint le niveau de stabilité cible au moment prévu.

La nouveauté marquante de cette bêta n'est pas un correctif technique — c'est la liste de retrait. L'analyse publiée par l'équipe d'ingénierie de Snowflake dénombre 53 fonctionnalités initialement planifiées pour PostgreSQL 19 qui ont été renvoyées vers une release ultérieure. Ce type de retrait massif en phase bêta est rare dans l'histoire du projet, qui maintient depuis vingt ans une cadence annuelle très régulière.

Conséquence directe : la GA de PostgreSQL 19 est désormais attendue fin octobre 2026, soit un retard de plusieurs semaines par rapport au planning initial. Pour une stack self-hébergée en production, ce décalage n'est pas anodin : il compresse la fenêtre de test avant les gels de fin d'année et décale l'ensemble du calendrier de migration.

Ce qui a été retiré et pourquoi ça compte

Parmi les 53 fonctionnalités retirées, trois groupes méritent l'attention des développeurs qui travaillent avec des stacks applicatives modernes.

Les retraits qui affectent les développeurs applicatifs

  • SQL/JSON path improvements — améliorations de la navigation jsonpath dans les documents JSON imbriqués, très utilisée dans les APIs REST stockant des données semi-structurées (profils utilisateurs, logs applicatifs, configurations dynamiques). Leur retrait signifie que les requêtes qui en dépendaient devront continuer à passer par des alternatives plus verbeuses.
  • SQL graph queries (ISO SQL:2016) — support des requêtes de graphe au standard ISO SQL:2016, qui aurait permis de modéliser des relations complexes (arbres de catégories, réseaux sociaux, chaînes de dépendances) directement en SQL standard, sans extension. Ce retrait est notable pour les projets qui voulaient migrer de solutions NoSQL vers PostgreSQL.
  • MERGE improvements backportés vers PG 18 — les améliorations de la clause MERGE (ajoutée en PostgreSQL 15, enrichie en 16 et 17) qui devaient figurer dans PG 19 ont été reportées. Une partie a été backportée vers PostgreSQL 18, ce qui renforce rétrospectivement l'attrait de cette version.

Pourquoi ces retraits n'invalident pas PG 19

Un retrait de fonctionnalité en bêta est un signe de maturité, pas d'échec. Le projet PostgreSQL préfère livrer moins que livrer instable — c'est ce qui lui vaut sa réputation de fiabilité en production. Les 53 fonctionnalités retirées seront candidates pour PostgreSQL 20. Ce qui doit retenir votre attention, c'est le calendrier : la fenêtre de test avant la GA est désormais très courte.

Impact concret par stack self-hébergée

La question pratique n'est pas « PostgreSQL 19 est-il bon ? » mais « ma stack tourne-t-elle sur quelle version, et est-ce que PG 19 change quelque chose à mon plan de migration ? ». Les quatre outils les plus répandus sur les VPS self-hosted ont des prérequis documentés qui orientent la réponse.

n8n documente PostgreSQL 14+ comme base supportée. En production self-hosted, les instances n8n tournent majoritairement sur PG 14 ou PG 15 — une migration vers PG 18 est donc un saut maîtrisé, sans fonctionnalités de PG 19 requises par l'application elle-même.

Supabase distribue PostgreSQL 15 par défaut dans son image self-hosted. Le projet suit les releases stables avec un délai de qualification interne de quelques semaines. PG 19 ne sera pas supporté avant plusieurs mois après la GA ; cibler PG 18 pour une instance self-hosted Supabase est la trajectoire cohérente.

Nextcloud 35 indique PostgreSQL 15+ dans sa documentation officielle. Les versions antérieures (Nextcloud 30 à 34) supportaient déjà PG 14. Aucune fonctionnalité PG 19 n'est requise par Nextcloud à ce jour.

Mattermost Team Edition documente PostgreSQL 14+ comme prérequis. La migration vers PG 18 ne nécessite pas de changement applicatif — le schéma est compatible.

Version PostgreSQL requise par application self-hosted

Faites défiler le tableau

ApplicationVersion PG minimale documentéeVersion PG distribuée par défautCompatible PG 18Nécessite PG 19
n8nPG 14+PG 14 ou 15 selon imageOui (aucun changement applicatif requis)Non
Supabase self-hostedPG 15+PG 15 (image officielle)Oui (qualification en cours)Non
Nextcloud 35PG 15+PG 15 recommandéOuiNon
Mattermost Team EditionPG 14+PG 14 ou 15OuiNon

La recommandation : PostgreSQL 18 est la cible intermédiaire saine

PostgreSQL 18 est sorti en disponibilité générale en avril 2026. Il bénéficie d'un cycle de support de cinq ans (jusqu'en 2031) et est désormais stable en production depuis plusieurs mois. C'est la version que les équipes qui planifiaient PG 19 devraient cibler maintenant.

Trois raisons concrètes plaident pour PG 18 comme cible intermédiaire :

1. Les MERGE improvements qui devaient figurer dans PG 19 ont été partiellement backportées vers PG 18 — vous en bénéficiez sans attendre.
2. La migration PG 17 → PG 18 est documentée et sans friction majeure. La compatibilité des extensions courantes (pgvector, PostGIS, TimescaleDB) est assurée.
3. Cinq ans de support à compter d'avril 2026 — pas de pression de mise à niveau immédiate, et une fenêtre confortable pour qualifier PG 19 quand il sera réellement stable en production.

La stratégie correcte est donc : migrer vers PG 18 maintenant, planifier PG 19 pour 2027 (après les premiers retours de production).

Guide de migration PG 16/17 → PG 18

La migration majeure de PostgreSQL s'effectue avec pg_upgrade, l'outil standard du projet. Il nécessite un arrêt de service mais ne demande pas de réinstallation complète — le catalogue et les données sont préservés.

Étapes de migration PG 16 ou PG 17 vers PG 18

  1. Sauvegarder la base avant toute opération

    Une migration majeure est irréversible sans sauvegarde. Effectuez un dump complet :

    pg_dumpall -U postgres > /backup/pg_full_$(date +%Y%m%d).sql

    Vérifiez que le fichier est lisible et non vide avant de continuer. Sur un VPS, copiez également le dump vers un stockage externe (bucket S3, serveur distant).

  2. Installer PostgreSQL 18 en parallèle de la version existante

    Sur Debian/Ubuntu, le dépôt PGDG permet d'installer plusieurs versions en parallèle :

    apt install postgresql-18

    Les deux instances coexistent (ports différents : 5432 pour l'ancienne, 5433 pour la nouvelle par défaut). pg_upgrade va opérer la migration entre les deux clusters sans démarrer l'ancienne instance.

  3. Arrêter l'ancienne instance et lancer pg_upgrade

    Arrêtez proprement l'ancienne instance (PG 16 ou PG 17) :

    systemctl stop postgresql@16-main
    # ou selon votre version
    systemctl stop postgresql@17-main

    Lancez pg_upgrade en mode vérification (--check) d'abord :

    pg_upgrade \
      -b /usr/lib/postgresql/17/bin \
      -B /usr/lib/postgresql/18/bin \
      -d /var/lib/postgresql/17/main \
      -D /var/lib/postgresql/18/main \
      --check

    Si le check passe sans erreur, relancez sans --check pour effectuer la migration.

  4. Reconfigurer le port et redémarrer

    Après la migration, pointez votre application vers le cluster PG 18. Si vous conservez le port 5432, éditez /etc/postgresql/18/main/postgresql.conf :

    port = 5432

    Démarrez l'instance PG 18 :

    systemctl start postgresql@18-main

    Vérifiez la version active :

    psql -U postgres -c "SELECT version();"
  5. Analyser et nettoyer après la migration

    Après pg_upgrade, relancez les statistiques sur toutes les bases (requises pour l'optimiseur de requêtes) :

    vacuumdb --all --analyze-in-stages -U postgres

    Une fois validé, vous pouvez supprimer l'ancien cluster et ses paquets :

    /usr/lib/postgresql/17/bin/pg_dropcluster 17 main
    apt remove postgresql-17

Vérifier sa version PostgreSQL en production

Avant de planifier quoi que ce soit, connaître la version exacte en production est indispensable. Les commandes varient selon le contexte d'installation.

Commandes de diagnostic de version

  • Via psql : psql -U postgres -c "SELECT version();" — affiche la version complète avec le numéro de patch.
  • Via systemctl : systemctl status postgresql — indique le nom du service actif, qui contient le numéro de version majeure.
  • Via Docker : docker exec <container> psql -U postgres -c "SELECT version();" pour une instance containerisée.
  • Via pg_lsclusters (Debian/Ubuntu) : pg_lsclusters — liste tous les clusters installés, leur port, leur statut et leur version. Utile quand plusieurs versions coexistent.
  • Via les logs applicatifs : n8n, Supabase et Mattermost logguent la version PostgreSQL au démarrage — vérifiez les logs si vous n'avez pas accès direct au serveur.

Planifier la migration vers PG 19 : timeline et précautions

PostgreSQL 19 GA est attendu fin octobre 2026. La chronologie réaliste pour une adoption en production self-hosted ressemble à ceci :

- Fin octobre 2026 : GA de PG 19, premiers paquets PGDG disponibles.
- Novembre–décembre 2026 : période à éviter pour les migrations en production — gel de fin d'année, équipes en sous-effectif, risque opérationnel élevé.
- Janvier–février 2027 : premier patch de maintenance PG 19 (généralement 2 à 4 semaines après la GA). C'est le signal standard pour considérer un test en staging.
- T1–T2 2027 : qualification sur une instance de staging avec dump anonymisé de production, validation des extensions, tests de performance.
- T2–T3 2027 : migration production pour les équipes qui ont validé le cycle complet.

Trois précautions à ne jamais sauter :

1. Testez d'abord sur un dump anonymisé de production, pas sur des données de test synthétiques — les volumes et les types de requêtes réels révèlent des régressions que les fixtures ne voient pas.
2. Vérifiez la compatibilité de chaque extension avant la migration : pgvector, PostGIS, pg_cron, pg_trgm ont chacun leur propre cycle de qualification pour chaque version majeure.
3. Gardez un plan de rollback documenté : avec pg_upgrade, le retour arrière est possible tant que vous n'avez pas supprimé l'ancien cluster — documentez la procédure de restauration avant de migrer.

Préparer son VPS pour PG 18 avec Docker

Si votre stack tourne déjà sous Docker, la migration vers PG 18 peut se faire en parallèle de l'instance de production, sans pg_upgrade. L'image officielle postgres:18 est disponible sur Docker Hub depuis la GA d'avril 2026.

Déployer PG 18 sur VPS avec Docker Compose

  1. Créer le fichier docker-compose.yml pour PG 18

    Créez un répertoire dédié et le fichier de configuration :

    mkdir -p /opt/postgres18 && cd /opt/postgres18

    Contenu du docker-compose.yml :

    cat > docker-compose.yml << 'EOF'
    services:
      postgres:
        image: postgres:18
        container_name: postgres18
        restart: unless-stopped
        environment:
          POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
          POSTGRES_USER: ${POSTGRES_USER:-postgres}
          POSTGRES_DB: ${POSTGRES_DB:-app}
        volumes:
          - ./data:/var/lib/postgresql/data
        ports:
          - "127.0.0.1:5432:5432"
    EOF

    Créez un fichier .env avec vos valeurs :

    echo 'POSTGRES_PASSWORD=motdepasse_fort_ici' > .env
  2. Importer les données depuis l'ancienne instance

    Démarrez le nouveau conteneur :

    docker compose up -d

    Restaurez le dump depuis votre ancienne instance (PG 16 ou PG 17) :

    psql -U postgres -h 127.0.0.1 -p 5432 < /backup/pg_full_$(date +%Y%m%d).sql

    Vérifiez que les bases et les tables sont bien présentes :

    docker exec postgres18 psql -U postgres -l
  3. Vérifier et basculer l'application

    Avant de basculer l'application, vérifiez la version active dans le conteneur :

    docker exec postgres18 psql -U postgres -c "SELECT version();"

    Mettez à jour la variable DATABASE_URL (ou DB_HOST/DB_PORT) de votre application pour pointer vers le nouveau conteneur. Redémarrez l'application et vérifiez les logs au démarrage — n8n, Nextcloud et Mattermost logguent tous la connexion PostgreSQL à l'initialisation.

Un VPS avec accès root vous donne la marge que le managé n'a pas

Tester PG 18 en parallèle de votre instance de production, valider votre stack sur un dump anonymisé, et revenir en arrière sans dépendre d'un prestataire : c'est ce que l'accès root sur un VPS rend possible. Un hébergement mutualisé ou un PaaS managé impose le calendrier de mise à niveau du fournisseur — souvent sans préavis sur la version cible ni possibilité de test préalable.

Conclusion : agir maintenant, pas après la GA de PG 19

Le retard de PostgreSQL 19 et le retrait de 53 fonctionnalités ne sont pas des signaux d'alarme sur la qualité du projet — c'est le processus normal de publication d'un logiciel de cette envergure. Mais ils changent le calendrier des équipes qui planifiaient un saut direct vers PG 19 avant la fin 2026.

La fenêtre d'action est maintenant, avant la GA de PG 19 :

- Si vous êtes sur PG 15 ou PG 16 : planifiez la migration vers PG 18. C'est la version stable, supportée 5 ans, dont les fonctionnalités couvrent tous les prérequis des stacks self-hosted courantes (n8n, Supabase, Nextcloud, Mattermost).
- Si vous êtes sur PG 17 : vous êtes dans une bonne position. PG 17 reste supporté jusqu'en 2029 ; la migration vers PG 18 peut attendre un cycle de maintenance calme.
- Dans tous les cas : ne planifiez pas PG 19 en production avant T2 2027 — la qualification des extensions et les premiers retours de prod nécessitent plusieurs mois après la GA.

Le calendrier de migration se décide quand les options sont ouvertes, pas quand la pression opérationnelle ferme les portes.

Testez PG 18 sur un VPS avec accès root

Un VPS avec accès root vous permet de déployer PostgreSQL 18 en parallèle de votre instance de production, de valider votre stack avant de basculer, et de revenir en arrière sans dépendre d'un fournisseur. C'est la marge opérationnelle qu'un hébergement mutualisé ne donne pas.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou contactez notre équipe — rappel, WhatsApp ou e-mail. Support en français, anglais et arabe.

Écrire sur WhatsApps'ouvre dans un nouvel onglet