Я хочу выполнить все файлы 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>
Если есть заполнитель, то я хочу использовать его для атрибута «input»тег «apply» (и удалите аргумент «-e»).
Для элемента «apply» имеется тег «srcfile», но я не могу вызвать это (не работает):
<arg value="--e source"></arg>
<srcfile/>
У вас есть предложения, как это сделать с помощью нативного объявления муравья?Возможно ли создать обходной путь, используя antcall + fileset (+ placeholder)?
Обходное решение noobish - перебрать набор файлов и создать временный sql-файл со ссылками на sql-файлы.В качестве последнего шага: назовите его статическим через "-e".Но это обходной путь, который я хочу удалить (по этому вопросу).
PS: я не хочу использовать функции ant-contrib.