ANT任务运行SQL脚本,可配置数据库名称



我正在尝试创建一个ANT任务,该任务需要一些数据库属性并执行MYSQL脚本。对于一个特定的数据库,它工作得很好,我所拥有的是:

一个可配置的属性文件:

sql.driver=com.mysql.jdbc.Driver
sql.url=jdbc:mysql://127.0.0.1:3306/
sql.user=admin
sql.pass=admin

和build.xml ant文件:

<target name="rebuild-database">
     <sql driver="${sql.driver}" url="${sql.url}" userid="${sql.user}" password="${sql.pass}">
          <transaction src="db/rebuild.sql"/>
          <classpath>
               <path refid="project.class.path"/>
          </classpath>
     </sql>
</target>

现在,这很好。sql脚本重建数据库。但是,我希望这个数据库名称也是可配置的。我知道您可以在sql后面附加数据库名称。Url属性,但这里有个问题,我的重建。SQL文件必须删除数据库(如果存在)并重新构建它。它看起来像这样:

rebuild.sql

DROP DATABASE IF EXISTS `client_database`;    
CREATE DATABASE `client_database` 
USE `client_database`;
CREATE TABLE `Customer` (
etc...

所以我的问题是,现在client_database是硬编码的,但我需要它在属性文件中是一个可配置的名称。我怎么能设法把这个名字传递到sql脚本和执行这3个第一个语句?

你可以

  • 从重建中拆分前3行(序言)。sql从rest
  • 使用参数${dbname}创建带有cat、echo等的序言,并与重建的(常量)主体一起重定向。
  • 调用生成的参数build.sql

相关内容

  • 没有找到相关文章

最新更新