2009-09-11 20 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> 
相关问题