jmccartie
jmccartie

Reputation: 4976

`<` character in exec task is breaking my Phing build script

I'm trying to setup an mysql import script in Phing, but the "<" is causing XML errors. Any ideas?

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

I'm looking at making dbDeploy doing this, but it'd be great if there was an easy way for this to work (single line command versus the multi-line setup of dbDeploy)

Upvotes: 3

Views: 1952

Answers (2)

Phil M
Phil M

Reputation: 6683

I'm not familiar with Phing, but it may not be executing the command in a shell, so the redirect operator won't work (it may be treating the operator as an argument to mysql itself).

Instead of < ${sql.file}, try -e 'source ${sql.file}', so your whole line is:

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

See the MySQL batch mode documentation.

Upvotes: 3

nickf
nickf

Reputation: 546333

Escape the character by replacing it with &lt;

Upvotes: 8

Related Questions