#diff #liquibase #snapshot
#разница #liquibase #моментальный снимок
Вопрос:
Чтобы отслеживать изменения для базы данных, я подумал, что лучшим решением будет сгенерировать снимок базы данных, внести изменения и получить список изменений, сравнивая снимок с базой данных.
Для моментального снимка я использую следующую команду:
$ 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
Есть идеи, как это исправить?
Ответ №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
Генерировать список изменений между моментальным снимком и базой данных
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
Приветствия