Liquibase Ant Build.xml Oracle驱动程序



我正在尝试运行一个通过Liquibase部署更改的ANT脚本。

<project name="Example" xmlns:liquibase="antlib:liquibase.integration.ant">
    <taskdef 
        resource="liquibase/integration/ant/antlib.xml" 
        uri="antlib:liquibase.integration.ant">
        <classpath path="C:liquibaselibliquibase"/>
    </taskdef>
  <property name="db.changelog.file" value="C:projectslbdemotrunkdb_v4.xml"/>
  <property name="database.url" value="jdbc:oracle:thin:@mydb:1521:ORCL"/>
  <property name="database.username" value="myuser"/>
  <property name="database.password" value="mypassword"/>
  <property name="database.driver" value="oracle.jdbc.OracleDriver"/>
  <liquibase:database id="my-database" driver="${database.driver}" url="${database.url}" user="${database.username}" password="${database.password}"/>
  <liquibase:updateDatabase databaseref="my-database" changelogfile="${db.changelog.file}"/>
</project>

安装路径:

  • Liquibase安装在:c: liquibase
  • JDBC驱动程序位于:c: liquibase ojdbc7.jar

  • 蚂蚁安装在:c: apache-ant-1.10.1

  • 我将liquibase.jar复制到:c: apache-ant-1.10.1 lib
  • 我的蚂蚁构建文件:c: projects lbdemo trunk build.xml
  • 我的更改文件:c: projects lbdemo trunk db_v4.xml

测试

  • 我能够使用Windows命令行使用更改文件DB_V4.XML成功运行Liquibase更新。

  • 如果从中删除所有液体标签,我可以运行ant build.xml文件。

错误:

运行上述蚂蚁构建时,我会遇到以下错误:

c: projects lbdemo trunk> ant

c: projects lbdemo trunk build.xml [liquibase:updatedatabase]开始 liquibase。

构建失败的C: Projects lbdemo Trunk build.xml:15:找不到类: oracle.jdbc.oracledriver

总时间:1秒

我该如何告诉ant中的liquibase在Oracle驾驶员坐在哪里?

我提到:http://www.liquibase.org/documentation/ant/index.html

更轻松地做到这一点的方法是将所有必需的(liquibase.jar和ojdbc7.jar)库放入一个目录中,并使用路径ID来引用它们。

<path id="liquibaseClasspath">
    <fileset dir="C:projectslbdemotrunklib" includes="*.jar" />
</path>
<target name="Upgrade_db">
    <echo message="Upgrading DataBase" />
    <updateDatabase changeLogFile="C:projectslbdemotrunkdb_v4.xml" driver="${database.driver}" url="${database.url}" username="${database.username}" password="${database.password}"  classpathref="liquibaseClasspath" />
</target>

您还可以在一个文件中提及一个文件中的所有目录位置,并在蚂蚁文件中导入该文件。

在此成功运行的ant build.xml。OJDBC驱动器和Liquibase罐子都位于C: Liquibase ;我在UpdatedAtabase标签中引用的标签:Liquibase:UpdatedAtabase classPathRef =" driver.classpath"

<project name="Example" xmlns:liquibase="antlib:liquibase.integration.ant">
  <path id="driver.classpath"> 
    <filelist dir="C:liquibase" > 
      <file name="ojdbc7.jar" /> 
      <file name="liquibase.jar" /> 
    </filelist> 
  </path>
  <property name="db.changelog.file" value="C:projectslbdemotrunkdb_v4.xml"/>
  <property name="database.url" value="jdbc:oracle:thin:@mydb.rds.amazonaws.com:1521:ORCL"/>
  <property name="database.username" value="myuser"/>
  <property name="database.password" value="mypassword"/>
  <property name="database.driver" value="oracle.jdbc.OracleDriver"/>
  <liquibase:database id="my-database" driver="${database.driver}" url="${database.url}" user="${database.username}" password="${database.password}"/>
  <liquibase:updateDatabase classpathref="driver.classpath" databaseref="my-database" changelogfile="${db.changelog.file}"/>
</project>

相关内容

  • 没有找到相关文章

最新更新