我正在尝试将数据从一个oracle数据库迁移到另一个。我使用以下方法产生了它们之间的差异:
./liquibase --driver=oracle.jdbc.OracleDriver --url=jdbc:oracle:thin:CMS/password@docker-ygupta.domain.com:1522/ORCL --username=cms --password=password diffChangeLog --referenceDriver=oracle.jdbc.OracleDriver --referenceUrl=jdbc:oracle:thin:CMS/password@172.18.41.67:1521/ORCL --referenceUsername=cms --referencePassword=password > dchangelog.xml
现在,我使用updateSQL生成了dchangelog.xml的sql,如下所示:
<username>cms</username>
<password>password</password>
<url>jdbc:oracle:thin:CMS/password@172.18.41.111:1522/ORCL</url>
<execution>
<id>process</id>
<phase>generate-resources</phase>
<goals>
<goal>updateSQL</goal>
</goals>
<configuration>
<username>cms</username>
<password>password</password>
<driver>oracle.jdbc.OracleDriver</driver>
<url>jdbc:oracle:thin:CMS/password@docker-ygupta.domain.com:1522/ORCL</url>
<changeLogFile>${output.change.log.file}.xml</changeLogFile>
<migrationSqlOutputFile>${output.change.log.file}.sql</migrationSqlOutputFile>
<promptOnNonLocalDatabase>false</promptOnNonLocalDatabase>
</configuration>
</execution>
在此SQL中得到的只是列,外键,唯一约束,索引等之间的差异。我想要的是未生成的数据。
我查看了文档,上面写着here:
当前,Liquibase运行以下比较:
Version Differences
Missing/unexpected tables
Missing/unexpected views
Missing/unexpected columns
Missing/unexpected primary keys
Missing/unexpected unique constraints
Missing/unexpected foreign Keys
Missing/unexpected sequences
Missing/unexpected indexes
Column definition differences (data type, auto-increment, etc.)
View definition differences
**Data differences (limited), not checked by default**
它甚至受支持吗,因为如果我尝试从命令行运行它会给出错误:
[ygupta @ nrvdevops02 WS] $ ./liquibase --driver = oracle.jdbc.OracleDriver --url = jdbc:oracle:thin:CMS/password@docker-ygupta.domain.com:1522 / ORCL --username = cms --password =密码diffChangeLog --referenceDriver = oracle.jdbc.OracleDriver --referenceUrl = jdbc:oracle:thin:CMS/password@172.18.41.67:1521 / ORCL --referenceUsername = cms --referencePassword = password --diffTypes = data从2018年12月14日星期五开始17:55:18 AEDT(版本3.6.2 建于2018-07-03 11:28:09)错误:包含'diffTypes = data' diffChangeLog命令无效。此选项只能是 与'generateChangeLog'命令一起使用。
@SteveDonie
答案 0 :(得分:0)
错误消息是正确的。无法使用diffChangeLog
命令在两个数据库之间进行数据差异。
Liquibase确实不是适合处理大量数据的工具。它主要旨在用作架构更改管理工具。