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





































0 Comments:

Post a Comment

<< Home