指定在Oracle中执行liquibase diff的模式?

时间:2016-09-01 20:47:06

标签: oracle ant liquibase

我正在尝试使用ant脚本在Oracle中执行liquibase diff。

这是预先形成diff

的片段
<target name="diff-database">
    <diffDatabaseToChangeLog
        driver=${db.driver}"
        url="${db.url}"
        username="${db.username}"
        password="${db.password}"

        referenceUrl="jdbc:oracle:thin@hostname:port:sid"
        referenceUsername="user1"
        referencePassword="password1"

        outputFile="changelog.xml"
        classpathref="tools.class.path"
    </diffDatabaseToChangeLog>
</target>

这是问题所在。

  • 我需要比较的两个数据库都是Oracle。
  • 对于referenceDB,我需要访问某个用户下的表,称之为user2,但是在我需要运行它的服务器上禁用了user2的登录。
  • 幸运的是,我可以访问另一个用户下的referenceDB,将其命名为user1,该用户具有“SELECT ANY TABLE”权限。所以我应该能够使用user1访问user2的表。

因此,鉴于所有这些信息,我如何指定我想将user2的表用作参考数据库?

我看了this page,但没有找到解决我问题的任何内容。

1 个答案:

答案 0 :(得分:1)

它应该是referenceDefaultSchemaName参数(http://www.liquibase.org/documentation/maven/maven_diff.html),但根据https://liquibase.jira.com/browse/CORE-2364,可能存在一些问题(我自己没试过)。