Как отобразить вывод команды diffChangeLog только на консоли? - PullRequest
0 голосов
/ 20 февраля 2020

Я работаю над командами Liquibase для управления версиями схемы базы данных. В настоящее время я работаю с командой diffChangeLog . Ниже приведен пример формата, над которым я работаю.

liquibase
--changeLogFile=dbchangelog.xml
--outputFile=mydiff.txt
--driver=oracle.jdbc.OracleDriver
--classpath=ojdbc14.jar
--url="jdbc:oracle:thin:@<IP OR HOSTNAME>:<PORT>:<SERVICE NAME OR SID>"
--username=<USERNAME>
--password=<PASSWORD>
diffChangeLog
--referenceUrl="jdbc:oracle:thin:@<IP OR HOSTNAME>:<PORT>:<SERVICE NAME OR SID>"
--referenceUsername=<USERNAME>
--referencePassword=<PASSWORD>

Согласно моему требованию, я не хочу, чтобы результат этого сохранялся в dbchangelog. xml. Я хочу получить этот результат только на консоли. Обязательно ли передавать changeLogFile параметр, потому что, если я не передам, то команда diffChangeLog не работает. Пожалуйста, помогите.

1 Ответ

0 голосов
/ 20 февраля 2020

К сожалению, в принципе команде присваивается изменение файла журнала изменений.

В качестве обходного пути вы можете сделать это с помощью сценария-оболочки.

  1. запустите diffchangelog
  2. используйте свой источник управления, чтобы показать diff файла changelog
  3. используйте контроль источника, чтобы отменить изменения

Если у вас нет контроля источника (пожалуйста, скажите, что вы используете контроль источника), тогда вы можете выполнить sh то же самое, просто файловая система:

  1. сделать резервную копию файла журнала изменений
  2. запустить diffchangelog
  3. использовать diff командной строки для сравнения измененного файла журнала изменений с резервной копией копия
  4. восстановление резервной копии файла журнала изменений
...