gpt4 book ai didi

mysql - Ant 应用文件集和文件作为命令输入

转载 作者:行者123 更新时间:2023-11-29 01:45:33 26 4
gpt4 key购买 nike

我将使用以下命令使用 mysql 命令导入一组 sql 文件。

<apply dir="${basedir}" executable="mysql" failonerror="true" parallel="true">
<arg value="-u${db.main.user}" />
<arg value="-p${db.main.password}" />
<arg value="-P${db.main.port}" />
<arg value="-h${db.main.host}" />
<arg value="-D${db.main.database}" />
<srcfile/>

<fileset dir="${db.main.path_to_dump}">
<filename name="keyword_category_rel.sql"/>
<filename name="keyword_classification.sql"/>
</fileset>
</apply>

问题是 mysql 命令将文件作为命令输入而不是作为参数执行。那么有没有一种方法可以将文件集中的文件作为输入而不是参数提供?

另一种选择是使用 -e 参数,它接受文件中的 sql 代码,但我如何才能将文件集列表中的数据读取到属性中?

最佳答案

apply 中传递每个“迭代器”文件的内容任务你可以使用输入 redirector .例如:

<apply executable="${mysql}" addsourcefile="false">
<fileset dir="${sql.dir}" />
<redirector>
<inputmapper type="glob" from="*" to="${sql.dir}/*" />
</redirector>
</apply>

将处理在 sql.dir 下找到的每个文件作为 mysql 的输入流调用。我省略了所有 mysql 凭据参数;他们会被需要。

在您的示例中,您指定了两个 filename文件集的元素,但都不包含任何通配符 - 请注意,在 fileset 中文档说:

If any of the selectors within the FileSet do not select the file, the file is not considered part of the FileSet. This makes a FileSet equivalent to an <and> selector container.

因此您的示例文件集实际上匹配 个文件。

您也可以考虑使用 Ant sql task为此。

关于mysql - Ant 应用文件集和文件作为命令输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7725889/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com