Как на самом деле использовать liquibase в проекте Maven с SVN - PullRequest
3 голосов
/ 19 июля 2010

На прошлой неделе я читал о быстром старте liquibase и обо всех связанных с ним уроках, но мне кажется, что я не понимаю, как использовать его для последовательных изменений в базе данных, и у меня все еще остаются открытые вопросы.

Я занимаюсь разработкой приложения в NetBeans с использованием maven с 3 модулями: модулем dbunit, сервисным модулем и модулем webapp. Как вы уже догадались, dbunit выполняет работу с базами данных, сервис находится поверх него иwebapp использует services.so родительский pom имеет объявление всех групповых идентификаторов, артефактов и версий для всех jar-файлов и плагинов.

Мне удается сгенерировать файл журнала изменений из командной строки, поскольку БД уже существует и, предположим, я все правильно настроил с помощью плагина liquibase maven:

вопрос 1 : Чтобудет ли цель в Liquidibase с тех пор, как я сейчас делаю какие-либо изменения в базе данных?

Вопрос 2 : Если я хочу добавить, например, новую таблицу в базу данных, добавлю ли я этот новый набор изменений в тот же файл журнала изменений, или я должен создать новый журнал изменений.XML-файл?

Вопрос 3 : Я полагаю, что когда dbunit запустится, он запустит набор изменений, но необходимо ли также добавить плагин в модуль webapp (возможно, для запуска цели liquibase перед развертыванием с Cargo)плагин) или dbunit позаботится об этом?

Вопрос 4 : Что именно помогает Subversion в сохранении состояний журнала изменений (при условии, что на вопрос 2 есть только один журнал изменений)

спасибо за чтение этого и заВы помогаете.

1 Ответ

6 голосов
/ 20 июля 2010
  1. См. http://www.liquibase.org/documentation/maven

, так что вы должны связать свое выполнение ликвидазы с такой фазой, как

<phase>process-resources</phase>

Но я также использую пружинный исполнитель.Таким образом, каждый раз, когда мое приложение запускается, оно запускает исполнитель liquibase для выполнения пропущенных изменений в базе данных.Это хорошо, потому что когда вы будете готовы к работе и тестам, liquibase обновит вашу базу данных разработчиков, но не вашу производственную базу данных.Но когда вы устанавливаете свою войну и запускаете веб-приложение, liquibase обрабатывает его автоматически, чтобы привести вашу базу данных в текущее состояние.Так что вам не нужно забывать делать какие-то дополнительные вещи перед развертыванием новой версии.

Сохраните свой файл changelog.xml с включениями для файлов изменений, подобных этому

http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.9.xsd">
, если вы хотите создать новую таблицу, добавьте файл changelog-0002.xml и укажите его в своем основном журнале изменений.xml

см. ответ 1. Я бы также добавил в ваш модуль веб-приложения.

У вас должно быть много файлов изменений.поэтому этот вопрос не применим.

...