realizar bakup en postgrep

Buenas Tardes! queria consultar sobre como realizar backup. El backup lo realizo de la siguiente manera:
$nombre_bd=‘nombre_base_datos’;
$host=‘localhost’;
$usuario =‘postgres’;
$fecha = date(‘d_m_Y_H_i_s’);
$archivo = “$fecha.sql”;
$temp_archivo = toba::proyecto()->get_www_temp($archivo);
$comando = "pg_dump -h “.$host.” -p 5432 -U “.$usuario.” “.$nombre_bd.” > ".$temp_archivo[‘path’];
$salida = shell_exec($comando);

Me devuelve un archivo.sql pero me devuelvo vacio el archivo.
cuando hago por linea de consola me pide la clave y ahi si el archivo no esta vacio.
Probe en agregarle la clave con -W pero no funciona.
Como podria solucionar el problema?
Desde ya muchas gracias

Hola Sole,

el dump sale vacio porque esta esperando que se ingrese el password para el usuario.
El parametro "-W " lo que hace es indicarle a postgres que debe pedir el pwd aparte con un prompt y no tomarlo del entorno, con lo cual estas complicandote mas.

Quizas es mas sencillo si lo pones todo en un batch y desde PHP simplemente lo invocas. Una opcion que tenes es definir una variable de entorno PGPASSWORD, donde este el pwd del usuario para los dumps, asi no tenes necesidad de pasarlo en la linea de comandos.

Igualmente, aca te dejo un link a un thread similar al tuyo.

Saludos