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