Инициализация базы данных H2 в памяти данными - PullRequest
5 голосов
/ 23 ноября 2011

Я использую H2 с Hibernate для генерации БД в памяти на лету для модульного тестирования.Мне удалось успешно создать БД, и все работает нормально.Но у меня есть проблема, я не знаю, как подойти.Мне нужно загрузить справочные данные в БД для тестирования до выполнения тестов.У меня есть эти данные в виде файла вставки SQL, который мне нужно запускать только один раз в режиме реального времени, однако, поскольку БД генерируется каждый раз с нуля, мне нужно выяснить, как вставить данные во время выполнения.Данные довольно просты, это списки стран, список состояний и т. Д. Какой лучший способ сделать это?

Кстати, все работает под Spring Framework.

Ответы [ 2 ]

7 голосов
/ 23 ноября 2011

Для ваших тестов вы можете выполнить скрипт инициализации при создании соединения.

http://www.h2database.com/html/features.html#execute_sql_on_connection

1 голос
/ 07 марта 2017

Из тегов вопроса я вижу, что вы используете Hibernate.Вы можете добавить файл с именем «import.sql» в ваш путь к классам (например, в src / main / resources, если вы используете макет проекта Maven).

Из документации Spring

Кроме того, файл с именем import.sql в корне пути к классам будет запускаться при запуске, если Hibernate создает схему с нуля (то есть если свойство ddl-auto установлено для создания или созданияпадение).Это может быть полезно для демонстраций и для тестирования, если вы осторожны, но, вероятно, не то, что вы хотите быть на пути к классам в производстве.Это функция Hibernate (не имеет ничего общего с Spring).

...