Liquibase ANT Build.xml Oracle 驱动程序
Liquibase ANT Build.xml Oracle Driver
我正在尝试 运行 一个 ant 脚本来通过 liquibase 部署更改。
<project name="Example" xmlns:liquibase="antlib:liquibase.integration.ant">
<taskdef
resource="liquibase/integration/ant/antlib.xml"
uri="antlib:liquibase.integration.ant">
<classpath path="C:\liquibase\lib\liquibase\"/>
</taskdef>
<property name="db.changelog.file" value="C:\projects\lbdemo\trunk\db_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
Ant 安装在:C:\apache-ant-1.10.1
- 我把liquibase.jar复制到:C:\apache-ant-1.10.1\lib
- 我的 ANT 构建文件:C:\projects\lbdemo\trunk\build.xml
- 我的更改文件:C:\projects\lbdemo\trunk\db_v4.xml
测试
我能够使用 Windows 命令行成功 运行 使用我的更改文件 db_v4.xmls 进行 liquibase 更新。
我可以 运行 ANT build.xml 文件,如果我从中删除所有 liquibase 标签。
错误:
我在 运行 上面的 ANT 构建时收到以下错误:
C:\projects\lbdemo\trunk>ant
C:\projects\lbdemo\trunk\build.xml [liquibase:updateDatabase] Starting
Liquibase.
BUILD FAILED C:\projects\lbdemo\trunk\build.xml:15: Class not found:
oracle.jdbc.OracleDriver
Total time: 1 second
如何在 ant 中告诉 liquibase Oracle 驱动程序位于何处?
这里的蚂蚁build.xml即运行成功。 ojdbc 驱动程序和 liquibase jar 都位于 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:\projects\lbdemo\trunk\db_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>
更简单的方法是将所有必需的(liquibase.jar 和 ojdbc7.jar)库放入一个目录并使用路径 ID 引用它们。
<path id="liquibaseClasspath">
<fileset dir="C:\projects\lbdemo\trunk\lib" includes="*.jar" />
</path>
<target name="Upgrade_db">
<echo message="Upgrading DataBase" />
<updateDatabase changeLogFile="C:\projects\lbdemo\trunk\db_v4.xml" driver="${database.driver}" url="${database.url}" username="${database.username}" password="${database.password}" classpathref="liquibaseClasspath" />
</target>
您也可以在一个文件中提及所有目录位置,然后将该文件导入您的 ant 文件。
我正在尝试 运行 一个 ant 脚本来通过 liquibase 部署更改。
<project name="Example" xmlns:liquibase="antlib:liquibase.integration.ant">
<taskdef
resource="liquibase/integration/ant/antlib.xml"
uri="antlib:liquibase.integration.ant">
<classpath path="C:\liquibase\lib\liquibase\"/>
</taskdef>
<property name="db.changelog.file" value="C:\projects\lbdemo\trunk\db_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
Ant 安装在:C:\apache-ant-1.10.1
- 我把liquibase.jar复制到:C:\apache-ant-1.10.1\lib
- 我的 ANT 构建文件:C:\projects\lbdemo\trunk\build.xml
- 我的更改文件:C:\projects\lbdemo\trunk\db_v4.xml
测试
我能够使用 Windows 命令行成功 运行 使用我的更改文件 db_v4.xmls 进行 liquibase 更新。
我可以 运行 ANT build.xml 文件,如果我从中删除所有 liquibase 标签。
错误:
我在 运行 上面的 ANT 构建时收到以下错误:
C:\projects\lbdemo\trunk>ant
C:\projects\lbdemo\trunk\build.xml [liquibase:updateDatabase] Starting Liquibase.
BUILD FAILED C:\projects\lbdemo\trunk\build.xml:15: Class not found: oracle.jdbc.OracleDriver
Total time: 1 second
如何在 ant 中告诉 liquibase Oracle 驱动程序位于何处?
这里的蚂蚁build.xml即运行成功。 ojdbc 驱动程序和 liquibase jar 都位于 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:\projects\lbdemo\trunk\db_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>
更简单的方法是将所有必需的(liquibase.jar 和 ojdbc7.jar)库放入一个目录并使用路径 ID 引用它们。
<path id="liquibaseClasspath">
<fileset dir="C:\projects\lbdemo\trunk\lib" includes="*.jar" />
</path>
<target name="Upgrade_db">
<echo message="Upgrading DataBase" />
<updateDatabase changeLogFile="C:\projects\lbdemo\trunk\db_v4.xml" driver="${database.driver}" url="${database.url}" username="${database.username}" password="${database.password}" classpathref="liquibaseClasspath" />
</target>
您也可以在一个文件中提及所有目录位置,然后将该文件导入您的 ant 文件。