[英]How to execute (via ant) a set of sql files with mysql command line
我想执行抵抗给定目录中的所有sql文件。 我要拨打的电话是这样的:
mysql --host=dbbackend --user=stack --password=overflow dbname -e 'source file1.sql'
可以表示为:
<apply executable="mysql" dir="." failonerror="true">
<arg value="--host=dbbackend"></arg>
<arg value="--user=stack"></arg>
<arg value="--password=overflow"></arg>
<arg value="mydbname"></arg>
<arg value="--e source dummy.sql"></arg>
<fileset dir="${db.dump.location.data}" casesensitive="no" description="take all sql files">
<patternset>
<include name="**/*.sql" />
</patternset>
</fileset>
</apply>
如果我在该目录中有3个sql文件,则dummy.sql被调用3次。 到现在为止还挺好。 是否可以使用占位符来更改此行:
<arg value="--e source dummy.sql"></arg>
变成:
<arg value="--e source ${unknown.placeholder.name}"></arg>
如果有一个占位符,那么我想将其用于“ apply”标签的“ input”属性(并删除参数“ -e”)。
有一个“ srcfile”标签可用于“ apply”元素,但是我不能调用它(不起作用):
<arg value="--e source"></arg>
<srcfile/>
您是否对使用本机ant声明进行处理有任何建议? 是否可以使用antcall + fileset(+ placeholder)构建替代方法?
无用的解决方法是通过文件集进行迭代并使用对sql文件的引用创建一个临时sql文件。 最后一步:通过“ -e”将其称为static。 但这是我要删除(通过此问题)的一种解决方法。
PS:我不想使用ant-contrib功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.