Tuesday, June 06, 2017

uso de pg_dump desde cliente en aplicaciones Java

En respuesta a aquellos que buscan dar solución a ejecutar respaldos de bases de datos desde cliente en aplicaciones Java con conexión a bases de datos en PostgreSQL .- En los foros de discusión aparece la solución por medio de processBuilder :
  
try {
String path = "ruta_donde_repaldar"
Runtime r = Runtime.getRuntime();
//PostgreSQL variables
String user = "postgres";
String dbase = "base_datos";
String password = "tu_clave";
Process p;
ProcessBuilder pb;
/**
* Ejecucion del proceso de respaldo
*/
r = Runtime.getRuntime();
pb = new ProcessBuilder("pg_dump", "-v", "-D", "-f", path, "-U", user, dbase);
pb.environment().put("PGPASSWORD", password);
pb.redirectErrorStream(true);
p = pb.start();


 Cuando se va a hacer la aplicacion para un equipo cliente solo basta con modificar los parametro para pasarlos al processBuilder o sea los parámetros ya definidos antes como los parámetros de Postgresql 
String user = "nombre_usuario";
                String dbase = "nombre  base de datos";
                String password = "password";
mas la dirección IP donde está alojada la base de  datos
                String host = "direccion IP base de datos";
ahora sigue tal cual lo proponen en los foros :
                Process p;
                ProcessBuilder pb;String separator = System.getProperty("file.separator");
String archSali = "nombTabla.data" , auxBackup = "";
String spath = "d:" + separator + "nombre" + separator + archSalida ;
String pathPost = "c:" + separator + "arch_programa"+separator+"PostgreSQL"+separator+"9.5"+separator+"bin"+separator+"pg_dump.exe";            r = Runtime.getRuntime();
 pb = new ProcessBuilder (pathPost ,"-h", host ,"-v" , "-f", path, "-U", user, "-t" , tabla , "-a" , dbase );
 pb.environment().put("PGPASSWORD", password);
                    pb.redirectErrorStream(true);
                    p = pb.start();      
Espero sea útil a quienes han tenido problemas en respaldar sus datos desde equipos cliente
Miguel Manzano





































Friday, June 09, 2006

Nunca es tarde para empezar algo ... sobre todo si vale la pena ...aquí es donde todo empieza...