2009-09-11 41 views

回答

22

創建一個運行這樣的「mysqldump的」命令的目標:

<target name="dump-database"> 
    <exec executable="mysqldump" output="database-dump.sql"> 
     <arg value="--user=username" /> 
     <arg value="--password=password" /> 
     <arg value="--host=localhost" /> 
     <arg value="--port=3306" /> 
     <arg value="mydatabase" /> 
    </exec> 
</target> 

現在你可以通過執行螞蟻轉儲數據庫

+0

請我的問題http://stackoverflow.com/questions/15835076/ant-build-failed-對於MySQL的 – Devendra 2013-04-05 14:12:59

2

您可以使用Exec的任務,這將啓動腳本將執行一切必要的行動傾銷(或其他)。

8

而且進行轉儲導入一些SQL文件使用螞蟻,這也是有用的:

<exec executable="mysql" failonerror="true" input="file.sql"> 
     <arg value="-u ${user}" /> 
     <arg value="-p${pass}" /> 
     <arg value="-h ${host}" /> 
     <arg value="-P 3306" /> 
     <arg value="-D ${database}" /> 
    </exec> 

*請注意,正確的是-ppassword,而不是-p密碼

或:

<exec executable="mysql" failonerror="true" input="file.sql"> 
     <arg value="--user=${user}" /> 
     <arg value="--password=${pass}" /> 
     <arg value="--host=${host}" /> 
     <arg value="--port=3306" /> 
     <arg value="--database=${database}" /> 
    </exec> 

這也是不錯的,因爲它不使用外部庫/ SQL司機喜歡org.gjt.mm.mysql.Driver。

0

如果你想使數據驅動的,試試這個傢伙使用ant SQL任務:

<macrodef name="sql-retrieve-table-schema"> 
    <attribute name="schema-name"/> 
    <attribute name="table-name"/> 
    <attribute name="connection-url"/> 
    <attribute name="output-file"/> 
    <sequential> 
     <sql userid="username" url="@{connection-url}" classpathref="compile.classpath" 
      password="apassword" driver="com.mysql.jdbc.Driver" print="true" output="@{output-file}" 
      showheaders="false" showtrailers="false"> 
      SHOW CREATE TABLE @{table-name}; 
     </sql> 
    </sequential> 
</macrodef>