2009-09-24 7 views
3

Je suis en train d'installer un script d'importation mysql dans Phing, mais le « < » est à l'origine des erreurs XML. Des idées?`` caractère dans la tâche exec briser mon build Phing scénario

<exec command="mysql -u${mysql.username} -p${mysql.password} -h ${mysql.server} ${mysql.database} < ${sql.file}" /> 

Je cherche à faire dbDeploy faire, mais ce serait bien s'il y avait un moyen facile pour que cela fonctionne (seule commande en ligne par rapport à la configuration multi-ligne de dbDeploy)

Répondre

8

Échapper le caractère en le remplaçant par &lt;

+2

si simple. duh. Merci. – jmccartie

3

Je ne suis pas familier avec Phing, mais il ne peut pas être l'exécution de la commande dans un shell, donc l'opérateur de redirection ne fonctionnera pas (il peut traiter l'opérateur comme un argument à mysql lui-même).

Au lieu de < ${sql.file}, essayez -e 'source ${sql.file}', de sorte que votre ligne entière est:

<exec command="mysql -u${mysql.username} -p${mysql.password} -h ${mysql.server} ${mysql.database} -e 'source ${sql.file}'" /> 

Voir la MySQL batch mode documentation.

+0

C'est génial. Je cherchais cette syntaxe et ne pouvais pas le trouver! Merci beaucoup! – RandomWhiteTrash