<target name="create-db-tables" depends="initialize">
<fail message="Missing property [datasource.url]." unless="datasource.url" />
<fail message="Missing property [db.user]." unless="db.user" />
<fail message="Missing property [db.password]." unless="db.password" />
<fail message="Missing property [db.sql.driver]." unless="db.sql.driver" />
<sql driver="${db.sql.driver}" url="${datasource.url}" userid="${db.user}" password="${db.password}" output="${basedir}/createTable.log" onerror="continue">
<classpath>
<pathelement location="${basedir}/../lib/ojdbc.jar"/>
</classpath>
<transaction src="${basedir}/ddl/dropTables.sql" />
<transaction src="${basedir}/ddl/createTables.sql" />
</sql>
</target>
我在我的 ant 脚本中定义了上述目标,它首先删除表然后创建它们。我希望 ant 在删除表时忽略错误(即 onerror="continue"),但在创建表期间发生错误时抛出异常(即 onerror="abort")。但它采用“sql”标签中的事务行为,因此它对所有事务都是通用的。
我不想创建单独的 sql 标签并重复数据库详细信息。另外,我想通过文件执行sql。我怎样才能通过蚂蚁做到这一点?