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

Reply via email to