Hi, Thank you for the suggestions so far from Antoine and Michael. unfortunately I've been asked to use ANT only without using unix shell scripts. I have tried to tackle it as individual modules using ANT script running the 1st iteration of the mysql scripts against newschema1. I need to run each iteration against all 4 schemas, then it would do a version check and if version check wasn't met then it would start 2nd iteration and so on.
This is rather urgent so I would appreciate any assistance. I need to create a recursive loop which I can't do and also some error checking module as well as some how linking these modules together so that they depend on each other etc... At the moment I have to run each target on its own. Please feel free to change my novice attempt at writing an ANT script. Thank you <!-- *************************************** Restore MySQL database **************************************** --> <target name="restore-db" > <!-- Clean up the database by deleting and then creating it. --> <antcall target="delete_db"/> <antcall target="create_db"/> <!-- Import data from the backup file. --> <exec executable="${my.sql}" input="db_dumps/db1.sql"> <arg value="--user=root"/> <arg value="--password=<password>"/> <arg value="--host=localhost" /> <arg value="--port=3306" /> <arg value="<newschema1>"/> </exec> <exec executable="${my.sql}" input="db_dumps/db2.sql"> <arg value="--user=root"/> <arg value="--password=<password>"/> <arg value="--host=localhost" /> <arg value="--port=3306" /> <arg value="<newschema2>"/> </exec> <exec executable="${my.sql}" input="db_dumps/db3.sql"> <arg value="--user=root"/> <arg value="--password=<password>"/> <arg value="--host=localhost" /> <arg value="--port=3306" /> <arg value="<newschema3>"/> </exec> <exec executable="${my.sql}" input="db_dumps/db4.sql"> <arg value="--user=root"/> <arg value="--password=<password>"/> <arg value="--host=localhost" /> <arg value="--port=3306" /> <arg value="<newschema4>"/> </exec> </target> <target name="delete_db"> <exec executable="${my.sql}"> <arg value="--user=root"/> <arg value="--password=<password>"/> <arg value="--host=localhost" /> <arg value="--port=3306" /> <arg value="--force"/> <arg value="drop"/> <arg value="<newschema1>"/> <arg value="<newschema2>"/> <arg value="<newschema3>"/> <arg value="<newschema4>"/> </exec> </target> <target name="create_db"> <exec executable="${my.sql}"> <arg value="--user=root"/> <arg value="--password=<password>"/> <arg value="--host=localhost" /> <arg value="--port=3306" /> <arg value="--force"/> <arg value="create"/> <arg value="<newschema1>"/> <arg value="<newschema2>"/> <arg value="<newschema3>"/> <arg value="<newschema4>"/> </exec> </target> <!-- *************************************** Get database version **************************************** --> <target name="get-db-version" > <exec executable="${my.sql}" outputproperty="get-db-version.out" input="getdbver.sql"> <arg line="--host=${server.ip}"/> <arg line="--user=root"/> <arg line="--password=<password>"/> <arg line="-D${newschema1}"/> </exec> <echo>Is at ${get-db-version.out}</echo> </target> <!-- ************************************************ Check database upgrade scripts exists *********************************************** --> <target name="db-version" if="get-db-version.out" depends="get-db-version" > <echo>Running upgrade from ${get-db-version.out}</echo> <condition property="script1.exists"> <available filepath="<directory>" file="script1.sql"/> </condition> <antcall target="run-script1"/> <condition property="script2.exists"> <available filepath="<directory>" file="script2.sql"/> </condition> <antcall target="run-script2"/> <condition property="script3.exists"> <available filepath="<directory>" file="script3.sql"/> </condition> <antcall target="run-script3"/> <condition property="script4.exists"> <available filepath="<directory>" file="script4.sql"/> </condition> <antcall target="run-script4"/> </target> <!-- *************************************** Run database upgrade scripts **************************************** --> <target name="run-script1" if="script1.exists" > <echo>Running sql in dir <directory></echo> <exec executable="${my.sql}" input="<directory>/script1.sql" failonerror="true"> <arg value="--user=<username>"/> <arg value="--password=<password>"/> <arg value="--host=localhost" /> <arg value="--port=3306" /> <arg value="<newschema1>"/> </exec> </target> <target name="run-script2" if="script2.exists" > <echo>Running sql in dir <directory></echo> <exec executable="${my.sql}" input="<directory>/script2.sql" failonerror="true"> <arg value="--user=<username>"/> <arg value="--password=<password>"/> <arg value="--host=localhost" /> <arg value="--port=3306" /> <arg value="<newschema1>"/> </exec> </target> <target name="run-script3" if="script3.exists" > <echo>Running sql in dir <directory></echo> <exec executable="${my.sql}" input="<directory>/script3.sql" failonerror="true"> <arg value="--user=<username>"/> <arg value="--password=<password>"/> <arg value="--host=localhost" /> <arg value="--port=3306" /> <arg value="<newschema1>"/> </exec> </target> <target name="run-script4" if="script4.exists" > <echo>Running sql in dir <directory></echo> <exec executable="${my.sql}" input="<directory>/script4.sql" failonerror="true"> <arg value="--user=<username>"/> <arg value="--password=<password>"/> <arg value="--host=localhost" /> <arg value="--port=3306" /> <arg value="<newschema1>"/> </exec> </target> -- View this message in context: http://ant.1045680.n5.nabble.com/How-to-script-database-upgrade-using-ANT-script-tp3250375p3251629.html Sent from the Ant - Users mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@ant.apache.org For additional commands, e-mail: user-h...@ant.apache.org