PostgreSQL 12 a 15 funciona directo sin pasar por versiones intermedias, así que pg_upgrade es tu camino. Lo que sí importa acá es que antes de correr pg_upgrade, necesitás hacer un backup completo con pg_dump o un backup físico - no para la migración en sí, sino como red de seguridad. Mucha gente salta este paso porque confia en que pg_upgrade va a funcionar, pero si algo sale mal con 50GB de datos, no querés estar rezando.
El proceso es bastante directo: instalás PostgreSQL 15 en el mismo servidor (o en uno paralelo si preferís), pausás las escrituras a la BD, corrés pg_upgrade con la flag `-k` para mantener los archivos viejos como respaldo, y déjalo correr. Con 50GB talvez tarde 5-15 minutos dependiendo del hardware, pero después tenés todo convertido in-place sin exportar/importar nada. Una vez que confirmas que anda todo bien, recién ahí borras los archivos viejos de la versión 12.
Lo importante que no ves mencionado es verificar los extension y configuraciones custom. Si tenes extensiones instaladas, pg_upgrade puede tener problemas - necesitás que existan en PostgreSQL 15 también. Antes de hacer cualquier cosa, chequea `SELECT extname FROM pg_extension;` en tu BD actual y confirmá que todas esas extensiones soporten la versión 15. Eso es donde más suele fallar la cosa, no en la migración de datos en sí.