Генерировать список изменений между моментальным снимком и базой данных

#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
  

Приветствия