¿Ya verificaste que tu versión 12 es compatible directamente con la 15, o necesitás pasar por versiones intermedias? Lo que nadie menciona es que además de pg_upgrade, deberías considerar hacer un backup completo antes de cualquier cosa, porque aunque pg_upgrade es bastante confiable, tener ese respaldo te da paz mental - especialmente con 50GB. Si sí o sí necesitás evitar downtime total, existe replicación lógica (logical replication) donde configurás una instancia secundaria con la versión 15, la sincronizás en paralelo y luego hacés failover cuando esté lista, pero eso es más complejo. La mayoría de la gente que conozco termina eligiendo pg_upgrade con una ventana de mantenimiento corta porque es lo más práctico y rápido para un volumen así.