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: [email protected]
For additional commands, e-mail: [email protected]