PostgreSQL 12 à 15 fonctionne directement sans passer par les versions intermédiaires, donc pg_upgrade est ton chemin. Ce qui compte vraiment ici, c'est qu'avant de lancer pg_upgrade, tu dois faire une sauvegarde complète avec pg_dump ou une sauvegarde physique - pas pour la migration elle-même, mais comme filet de sécurité. Beaucoup de gens sautent cette étape parce qu'ils font confiance à pg_upgrade pour fonctionner, mais si quelque chose se passe mal avec 50 GB de données, tu ne veux vraiment pas être en train de prier.
Le processus est plutôt direct : tu installes PostgreSQL 15 sur le même serveur (ou sur un serveur parallèle si tu préfères), tu arrêtes les écritures dans la BD, tu lances pg_upgrade avec le flag `-k` pour garder les anciens fichiers comme sauvegarde, et laisse-le tourner. Avec 50 GB ça peut prendre 5-15 minutes selon le matériel, mais après tu as tout converti sur place sans exporter/importer quoi que ce soit. Une fois que tu confirmes que tout fonctionne bien, c'est seulement là que tu supprimes les anciens fichiers de la version 12.
Ce qui est important et que tu ne vois pas mentionné partout, c'est vérifier les extensions et les configurations custom. Si tu as des extensions installées, pg_upgrade peut avoir des problèmes - tu dois qu'elles existent aussi dans PostgreSQL 15. Avant de faire quoi que ce soit, vérifie `SELECT extname FROM pg_extension;` dans ta BD actuelle et confirme que toutes ces extensions supportent la version 15. C'est là que ça échoue le plus souvent, pas vraiment dans la migration de données elle-même.