OVH Cloud OVH Cloud

[WD + mySQL] mysqldump + lanceappli

11 réponses
Avatar
Olivier POUZIN
Bonjour à tous,

Je cherche à lancer un dump d'une table mysql à partir de WD.

La ligne de commande suivante :

mysqldump mabase > test.sql

fonctionne sans problème mais impossible de l'exécuter à partir de WD ??

Mon code :

_exec est une chaine="g:\wamp\mysql\bin\mysqldump.exe mabase > test.sql"
SI pas LanceAppli(_exec, exeActif, Vrai) ALORS
Erreur(ErreurInfo())
FIN

Je dois louper un truc, quelqu'un pourra t-il éclairer ma lanterne ?!

Merci d'avance

1 réponse

1 2
Avatar
Olivier POUZIN
jacques trepp a écrit :
fichier SAUVEGARDE.INI
SAUVEGARDE]
DISQUE=H
USB=1
RACINE=Sauve
REPERTOIRE=H:
POSTGRESQL=C:Program FilesPostgreSQL8.1bin

// ------------------------------------------------

disque_sauve, rep_sauve, racine_sauve, rep_postgres sont des chaînes
usb_sauve est un booléen

disque_sauve =
Asc(INILit("SAUVEGARDE","DISQUE","C",ComplèteRep(fRepEnCours())+"Sauvegarde.ini"))-66

usb_sauve =
Val(INILit("SAUVEGARDE","USB","0",ComplèteRep(fRepEnCours())+"Sauvegarde.ini"))

racine_sauve =
INILit("SAUVEGARDE","RACINE","",ComplèteRep(fRepEnCours())+"Sauvegarde.ini")

rep_sauve =
INILit("SAUVEGARDE","REPERTOIRE","",ComplèteRep(fRepEnCours())+"Sauvegarde.ini")

rep_postgres =
INILit("SAUVEGARDE","POSTGRESQL","",ComplèteRep(fRepEnCours())+"Sauvegarde.ini")


SI usb_sauve ALORS
Résultat_usb est une chaîne
Résultat_usb = USBRecherche(USBLecteur,Caract(Val(disque_sauve)+66))
SI SansEspace(Résultat_usb) = "" ALORS
Erreur("Aucun périphérique USB n'a été détecté !")
RETOUR
FIN
FIN


nom_programme, chemin_sauve sont des chaînes
nom_programme = ComplèteRep(fCheminCourt(rep_postgres)) + "pg_dump.exe "
chemin_sauve = ComplèteRep(fCheminCourt(rep_sauve))
// -------------------------------- si postgresql, optimiser la base
option_commande est une chaîne

option_commande = " -i -h " + g_serveur_mysql ...
+ " -p " + g_numero_port ...
+ " -U " + g_user_id ...
+ " -F t -v -f " + chemin_sauve +racine_sauve+"_"+g_base_mysql+".backup
" + g_base_mysql

DDELance(nom_programme+option_commande,DDEActif,Vrai)
Info("Traitement terminé.")

un bout de code qui fonctionne bien chez moi.





Merci de ta réponse

J'ai contourné le problème en créant puis supprimant un .bat pour chaque
appel à mysqldump (le nom de l'archive change à chaque opération ainsi
que le dossier d'archivage). Ce n'est pas très "propre" mais cela
fonctionne bien.

Je vais essayer ton code
1 2