У нас есть веб-приложение в фазе разработки, где мы используем Spring 5, JPA (Hibernate) и Postgresql 9.4
До этого момента мы использовали один экземпляр posgresql db для нашей работы.По сути, у нас нет сценария генерации схемы, и мы просто обновляли базу данных, если нам нужна была новая таблица, столбец и т. Д. Для Hibernate мы генерировали классы из базы данных.
Теперь, когда у нас есть некоторое количество тестовых данных, и каждое изменение в БД доставляет много хлопот и путаницы.Мы поняли, что нам нужно создать и начать поддерживать некоторый файл генерации схемы вместе с некоторыми скриптами, которые генерируют тестовые данные.
После некоторых исследований мы видим два варианта
Создатьдва * .sql файла.Первый будет содержать скрипт генерации схемы, второй - SQL для создания тестовых данных.Затем добавьте небольшой модуль с классом, который будет выполнять файлы * .sql, используя обычный jdbc.По сути, мы продолжим разработку, и всякий раз, когда мы вносим некоторые изменения, мы быстро стираем-> создаем-> заполняем базу данных.Этот подход выглядит наиболее привлекательным для нас на данный момент.Это быстро, просто, надежно.
Во-вторых, необходимо настроить какой-либо инструмент, который может помочь с этим, например Liquibase Этот подход также выглядит хорошо с точки зрения поддержки версий идругие возможности.Однако мы еще не в производстве, мы находимся в активной фазе разработки.У нас не так много разработчиков, которые вносят изменения в БД, и мы не уверены, как часто мы будем обновлять схему БД в производстве, это может быть редко.
Вопрос в том,следующие.Будет ли первый подход плохой практикой, а применение второго принесет наибольшую пользу, и стоит ли его использовать?
Буду признателен за любые комментарии или любые другие предложения!