управление запуском сценария sql в спящем режиме

Я использую Spring 4.1.6, и моя служба отлично работает с Hibernate. В корне проекта у меня есть schema.sql, который запускается каждый раз, когда я запускаю сервер. Проблема в том, что в первый раз, когда я запустил сервер, я поместил некоторые данные в базу данных, и когда я перезапустил его, сценарий был выполнен снова, и я потерял все данные, которые я загрузил перед перезапуском.

Итак, я думаю, что у меня есть два варианта решения этой проблемы:

  1. Измените сценарий sql для выполнения всех запросов на случай, если они не существуют (что было бы более трудоемко, поскольку мне приходилось редактировать сценарий каждый раз, когда я экспортирую свою базу данных)
  2. Скажите спящему режиму каким-то образом, чтобы он выполнял sql-скрипт только в некоторых случаях. Было бы здорово, если бы существовала некоторая конфигурация, которая запускает скрипт на случай, если базы данных не существует.

Вы знаете, возможно ли это вообще? Заранее спасибо.


person jscherman    schedule 23.06.2015    source источник


Ответы (1)


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

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

person StuPointerException    schedule 23.06.2015
comment
Я искал о Liquibase, и я обнаружил и нашел лучший пролетный путь. Через Spring Boot все довольно просто и понятно. В любом случае, я принимаю ваш ответ, потому что это тоже возможно. Спасибо! - person jscherman; 24.06.2015