Bonjour à tous,
Sous SF 4.2, j'ai dans un controleur du code qui lance un mysqldump vers un fichier, et ça marche nickel.
En passant sous SF 4.4, ce code ne marche plus. Selon les docs de Symfony, la ligne Process() prend maintenant un tableau en paramètre. J'ai donc fait cette modif.
Pour info, mon mysqldump (avec les vraies valeurs) marche quand je suis dans un terminal, dans mon dossier dump-sql.
Voici mon code, avec en commentaire la ligne que j'ai modifié pour SF 4.4 :
Et là, sous SF 4.4, j'ai toujours le message d'erreur suivant, dans un écran rouge, sur la ligne du throw de l'exception :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 $directory = $this->getParameter('kernel.project_dir'); $directory .= '/dump-sql/'; $command = 'mysqldump --host=monhost --user=monuser --password=monmdp mondatabase >monfichier.txt'; $process= new Process($command); // SF 4.2 //$process= new Process([$command]); // SF 4.4 $process->setWorkingDirectory($directory); $process->run(); if (!$process->isSuccessful()) { throw new ProcessFailedException($process); }
De ce que je comprends, SF 4.4 ne trouve pas le chemin pour exécuter mysqldump, alors que ça marchait sous SF 4.2.Exit code: 127 (Command not found)
J'ai essayé plein de trucs, sans succès :
- Dans ma ligne 'command', ajouter en dur le chemin de mysqldump
- Vu que Process prend un tableau en paramètre, découper ma ligne 'command' en plusieurs paquets
- Puis plein de bidouilles qui ne m'ont mené à rien...
Je suis à court d'idée. Vous avez des pistes svp ?
Merci d'avance à vous.
Partager