2
我想執行所有在給定目錄中阻止的sql文件。 我想撥打電話是這樣的:如何使用mysql命令行執行(通過ant)一組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>
如果我在DIR 3個SQL文件,然後dummy.sql被稱爲3倍。到現在爲止還挺好。是否有可用的佔位符來改變這一行:
<arg value="--e source dummy.sql"></arg>
到:
<arg value="--e source ${unknown.placeholder.name}"></arg>
如果有一個佔位符,然後我想使用它的「應用」標籤的「輸入」屬性(並刪除參數「-e」)。
沒有爲「應用」元素的「SRCFILE」標籤可用,但我不能把這個(不工作):
<arg value="--e source"></arg>
<srcfile/>
你對如何與本地螞蟻做到這一點建議宣言? 是否可以使用antcall + fileset(+佔位符)構建解決方法?
Noobish的解決方法是通過fileset進行迭代,並創建一個臨時sql文件並引用sql文件。作爲最後一步:通過「-e」將其稱爲靜態。但是,這是一個解決方法,我想刪除(通過這個問題)。
PS:我不想使用ant-contrib功能。
小題外話,因爲你有你的答案。你可以編寫'',你不必使用' ',只需要用'/>'來寫。哦,是的,...並接受一個答案,如果你已經得到你的。 –
2012-03-22 11:55:56