При работе над модульной архитектурой системы для корпоративного приложения я сталкиваюсь с некоторыми проблемами с инициализацией базы данных. У нас есть базовая библиотека, которая предоставляет базовые объекты и базовую конфигурацию. В дополнение к этому ядру построено несколько модулей. Они подключаются и могут иметь свои собственные объекты и конфигурацию. Некоторые характеристики:Инициализация модульной базы данных
- Конфигурация, как и системные свойства, ресурсные базы и т. Д., Хранится в базе данных.
- JPA используется для независимой системной базы данных.
- Система работает на Java SE
Каждый модуль может принести свои собственные таблицы, но они могут также потребовать, чтобы заполнить сердечнике таблицу или таблицу ядра ResourceBundle. Поэтому нам как-то понадобится некоторый механизм для запуска DDL и инициализации DML для базы данных. Некоторые варианты:
- Создайте простые скрипты sql. Недостатком является то, что они должны быть независимыми от базы данных, и, возможно, это не самый дружественный разработчик. Разве мы не можем сгенерировать их с помощью некоторого инструмента DB diff?
- Использовать классы Java для инициализации через JPQL?
- Конфигурация магазина в файлах? Это позволяет избежать много (но не всех) конфигурации DML.
- Используйте какой-нибудь инструмент, например, жидбаза?
Какова будет наилучшая практика для этой (или аналогичной) проблемы?
Вы отметили это сообщение с помощью Liquibase ... Разве этот инструмент вам не помогает? –
@ MarkO'Connor это может быть вариант. Но я рассматриваю здесь подход с лучшей практикой. Поэтому, если есть другие/лучшие подходы, я с удовольствием узнаю о них. –