Как вывести дамп базы данных MySQL с помощью муравья? - PullRequest
10 голосов
/ 11 сентября 2009

Я не смог найти информацию о том, как вывести базу данных MySQL с помощью задачи ant.

Нужно ли создавать для этого собственное задание?

ANT script ===generate==> myDataBase.sql

Ответы [ 4 ]

22 голосов
/ 11 сентября 2009

Создайте цель, которая запускает команду «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>  

Теперь вы можете создать дамп, выполнив ant dump-database

8 голосов
/ 30 июля 2012

И для импорта некоторого файла sql с использованием ant, что также полезно:

    <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>

* обратите внимание, что правильным является -пароль , а не -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>

Это также хорошо, потому что он не использует внешние драйверы libs / sql, такие как org.gjt.mm.mysql.Driver.

2 голосов
/ 11 сентября 2009

Вы можете использовать задачу Exec, которая запустит ваш скрипт, который выполнит все действия, необходимые для сброса (или чего-либо еще).

0 голосов
/ 26 ноября 2015

Если вы хотите сделать это управляемым данными, попробуйте этого парня с помощью задачи 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>
...