Bonjour je voudrais savoir si quelqu'un a une idée concernant une restauration simple (ne pas reinventer la roue) de dump.
Voici les parties pour comprendre mon probleme :
Classes/fonctions:
Messages => redirections et modif des sorties standards
getFile() => permet la recupe de l'emplacement du fichier a charger
getDir() => permet la recupe de l'emplacement du dossier dans lequel est enregistre le dump
fonction de dump (ca ca marche bien)
Code :
- /**
- * Permet un mysqldump
- * @return true/false
- */
- public boolean dump(){
- boolean dump = false;
- String tmp = getDir();
- if(tmp != null){
- String connect = new String("mysqldump -u"+user+" -p"+password+" -h"+host+" --compact --default-character-set=utf8 -r "+tmp+" "+dbname);
- message.info(connect);
- try{
- process = runtime.exec(connect);
- int exitVal;
- try {
- exitVal = process.waitFor();
- message.info("Process exitValue: " + exitVal);
- dump = true;
- } catch (InterruptedException ex) {
- message.erreur("Impossible d'ecrire le dump"+ex.getMessage(), getClass());
- }
- }catch(IOException ex){
- message.erreur("impossible d'ecrire le dump "+ex.getMessage(), getClass());
- }
- }
- return dump;
- }
|
fonction de restauration : (la ca marche pas)
Code :
- /**
- * Permet une restauration a partir d'un fichier dump
- * @return true/false
- */
- public boolean restore(){
- boolean restore = false;
- String tmp = getFile();
- if(tmp != null){
- String connect = new String("mysql -u"+user+" -p"+password+" -h"+host+" -e \"source "+tmp+"\" " );
- message.info(connect);
- try{
- process = runtime.exec(connect);
- int exitVal;
- try {
- exitVal = process.waitFor();
- message.info("Process exitValue: " + exitVal);
- restore = true;
- } catch (InterruptedException ex) {
- message.erreur("Impossible de restaurer le dump"+ex.getMessage(), getClass());
- }
-
- }catch(IOException ex){
- message.erreur("Impossible de restaurer le dump"+ex.getMessage(), getClass());
- return false;
- }
- }
- return restore;
- }
|
Voici ma sortie :
Citation :
Information: mysql -uXXXX -pXXXXXXXX -h127.0.0.1 -e "source /home/alain/programmation/MonGestionnaire/CLEAN/data.sql" Information: Process exitValue: 1
|
Aucun message d'erreur.
Si je copie/colle la sortie de la premiere information dans ma console le dump est restauré.
J'ai tente en passant par un Statement (genre newStatement.executeQuery("source dir/vers/dump.sql" ); ) ca ne marche pas, il me sort une "error in ur sql syntax"
Merci d'avance.
---------------
----