Конвертировать Liquibase XML в YAML?
могу ли я автоматически конвертировать файлы журнала изменений Liquibase в формат XML до формат YAML?
3 ответов
нет ничего встроенного, но вы можете легко сделать это с помощью небольшого скрипта.
некоторые отправные точки:
liquibase.parser.ChangeLogParserFactory.getInstance().getParser(".xml", resourceAccessor).parse(...)
возвращает объект DatabaseChangeLog, представляющий файл журнала изменений.
liquibase.serializer.ChangeLogSerializerFactory.getInstance().getSerializer(".yaml").write(...)
выведет наборы изменений в объекте DatabaseChangeLog в файл в формате yaml
Я знаю, что это немного поздно ответа; тем не менее, я изучал использование Liquibase для проекта на работе и искал что-то, чтобы сделать то, что он хотел. Я видел ответ Натан Voxland, и утилита командной строки, написанные на Java, чтобы преобразовать это. Код можно найти по адресу здесь на Github. Не стесняйтесь изменять или исправлять его и отправлять PRs; я буквально написал его через час или около того, поэтому, пожалуйста, легко судить о базе кода :). Надеюсь, это поможет в следующем человек, который ищет подобный инструмент и спотыкается здесь.
умный способ-непосредственно генерировать yaml вместо xml, Liquibase предоставляет эту функциональность OOB.
Вам нужно только изменить расширение выходного файла changeLogFile на .yaml
и liquibase поймет вас красиво (испытано с liquibase-3.6.0).
например: я запустил эту команду для моей Postgres DB:
liquibase --driver=org.postgresql.Driver
--classpath=\path\to\postgresql-9.0-801.jdbc4.jar
--changeLogFile=D:\Liquibase\changeLog.yaml
--url="jdbc:postgresql://localhost:5432/db_name"
--username=postgres
--password=postgres
--logLevel=debug generateChangeLog
внимание: для удобства чтения добавлены новые строки.
теперь вы знаете, что произойдет, если вы изменение расширения выходного файла .xml
PS: Если команда liquibase не работает, попробуйте то же самое с java -jar liquibase.jar
.