为了跟踪数据库的更改,我认为最好的解决方案是生成数据库的快照,进行更改并获取将快照与数据库进行比较的更改日志。
对于快照,我使用以下命令:
$ liquibase --url=jdbc:postgresql://localhost:5432/test
outputFile=sdk/workspace//output.json --snapShotFormat=json
现在有了快照,我在数据库中做了一些更改(将2列添加到2个不同的表中)。我尝试运行以下命令以将快照与数据库进行比较:
$ liquibase --url=jdbc:postgresql://localhost:5432/test -
username=postgres --password=new_password --
referenceUrl=offline:postgresql?snapshot=sdk/testsnapshot.json
diffchangelog
但出现以下错误:
$ Unexpected error running Liquibase: Cannot parse snapshot
offline:postgresql?snapshot=sdk/testsnapshot.json
关于如何解决此问题的任何想法?
答案 0 :(得分:1)
我设法解决了这个问题,以防万一将来有人遇到相同的问题,这是正确的解决方法。
生成快照:
liquibase
--driver=org.postgresql.Driver \
--classpath=lib/postgresql42.2.5.jre6.jar \
--url=jdbc:postgresql://localhost:5432/test \
--outputFile=sdk/snaptest.json \
--username=postgres \
--password=new_password \
snapshot
在快照和数据库之间生成diffChangeLog
liquibase
--driver=org.postgresql.Driver \
--changeLogFile=sdk/workspace/difference_log.xml \
--url=jdbc:postgresql://localhost:5432/test \
--username=postgres \
--password=new_password \
--referenceUrl=offline:postgresql=sdk/snaptest.json \
diffchangelog
欢呼