Здравствуйте. Мне нужно, чтобы при первом запуске проекта и создании пустой бд в приложении появлялись необходимый записи. Как сделать для этого скрипты миграции ликвибейс? Я в этом совсем не разбираюсь, поэтому был бы очень благодарен подробному ответу. Спасибо!
Посмотрите создание пользователя admin
в 010-init-user.xml
Посмотрел… Смотрю в книгу, вижу… (
Еcли инициализировать не много, то да, можно по аналогии с 010-init-user.xml.
А вот если надо много чего проинициализировать, заполнить типовые справочники и т.п. - можно заставить liquibase сгененировать чендж-лог на основе данных заполненных таблиц.
Мы делаем именно так.
Заполняем в БД все что требуется, натравливаем liquibase на нужные таблицы и складываем созданные им ченндж-логи в проект.
Наверняка как-то можно запустить liquibase, который есть в комплекте проекта, но мы просто устанавливали полный с базовой бесплатной лицензией.
В этом случае такой чендж-лог инициализации сгененирует консольная команда такого рода:
liquibase --diffTypes=data --include-objects="my_table1","my_table1" --changelog-file=myInitChangelog.xml generate-changelog
Часто удобно, чтобы сами строки данных инициализации таблиц были не в громоздком xml, а в csv.
Это делается так:
liquibase --diffTypes=data --include-objects="my_table1","my_table1" --dataoutputdirectory=csv_data --changelog-file=myInitChangelog.xml generate-changelog
Тут csv_data
это каталог, в который надо сложить csv с данными.
А myInitChangelog.xml будет компактный.
Ну и подробности в доке: loadData