Как на самом деле использовать liquibase в проекте Maven с svn
-
17-09-2020 - |
Вопрос
На прошлой неделе я прочитал о быстром запуске Liquibase и всех связанных с ним учебных пособиях, но мне кажется, что я не совсем понимаю, как использовать его для последовательных изменений в базе данных, и у меня все еще есть некоторые вопросы.
я разрабатываю приложение в netbeans, используя maven с тремя модулями:модуль dbunit, сервисный модуль и модуль веб-приложения. Как вы уже догадались, dbunit выполняет работу с базой данных, служба находится поверх нее, а веб-приложение использует службы. Таким образом, родительский pom имеет объявление всех идентификаторов групп, артефактов и версий для все банки и плагины.
Мне удается создать файл журнала изменений из командной строки, поскольку база данных уже существует, и если предположить, что я все правильно настроил, используя плагин liquibase maven:
Вопрос 1 :Какова будет цель жидкой базы, поскольку прямо сейчас я делаю какие-либо изменения в базе данных?
вопрос 2 :Если я хочу добавить, например, новую таблицу в базу данных, добавлю ли я этот новый набор изменений в тот же файл журнала изменений или мне придется создать новый файл Changelog.xml?
Вопрос 3 :Я полагаю, что когда dbunit запустится, он запустит набор изменений, но необходимо ли добавлять плагин и в модуль веб-приложения (возможно, для запуска цели Liquibase перед развертыванием с грузовым плагином), или об этом позаботится dbunit?
Вопрос 4 :Какая именно Subversion помогает сохранять состояния журнала изменений (при условии, что существует только один журнал изменений, см. вопрос 2)
спасибо, что прочитали это и помогли.
Решение
поэтому вам следует привязать выполнение Liquibase к такой фазе, как
<phase>process-resources</phase>
Но я тоже использую Spring-исполнитель.Поэтому каждый раз, когда мое приложение запускается, оно запускает исполнитель Liquibase для выполнения отсутствующих журналов изменений в базе данных.Это приятно, потому что, когда вы будете готовы к работе и тестам, liquibase обновит вашу базу данных разработки, но не вашу производственную базу данных.Но когда вы устанавливаете свою войну и запускаете веб-приложение, liquibase автоматически обрабатывает ее, чтобы привести вашу базу данных в текущее состояние.Таким образом, вам не нужно помнить о каких-то дополнительных действиях перед развертыванием новой версии.
Сохраните файл журнала изменений.xml, включив в него файлы журнала изменений, подобные этому.
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.9.xsd">
если вам нужна новая таблица, добавьте файл Changelog-0002.xml и укажите его в главном файле Changelog.xml.смотри ответ 1.Я бы тоже добавил ваш модуль веб-приложения.
У вас должно быть много файлов журнала изменений.так что этот вопрос не актуален.