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