#spring-boot #h2 #liquibase #jdbctemplate
#spring-boot #h2 #liquibase #jdbctemplate
Вопрос:
У меня есть следующая настройка:
- Пружинный Ботинок
- Встроенная база данных H2
- Скрипты Liquibase для создания данных
Прежде всего, я хочу начинать с чистого листа каждый раз, когда перезапускаю свое приложение. Я хочу, чтобы liquibase каждый раз заново создавала таблицы H2 из сценариев. Прямо сейчас этого не происходит, и она просто сохраняет существующие данные. Если я удалю данные вручную из консоли h2, они не будут созданы заново, если я не обновлю идентификаторы наборов изменений.
Даже тогда, прямо сейчас, у меня есть существующая таблица под названием User, которая содержит данные. Я вижу это из своей консоли h2. Но внезапно, когда я использую свой запрос JdbcTemplate, он не находит никаких результатов, и я больше не могу войти в систему (он получает нулевой результат).
Редактировать:
Я исправил запрос данных, добавив установщики в мой User.java объект. Это исправило ситуацию (я надеялся, что смогу обойтись без них, но, похоже, нет).
Но я все еще хочу, чтобы таблицы, созданные моей ликвидной базой, сбрасывались каждый раз, чтобы я мог изменять запросы без ошибок.
Ответ №1:
Очень простой способ получить свежую базу данных при каждом запуске — использовать базу данных в памяти вместо файла.
Просто замените spring.datasource.url=jdbc:h2:~/company;MV_STORE=false
на spring.datasource.url=jdbc:h2:mem:company;MV_STORE=false
в вашем приложении.свойства
Комментарии:
1. Спасибо! Я знал, что мне чего-то не хватает, потому что я думал, что это должно было быть несуществующим по умолчанию. Следующее на самом деле больше не имеет никакого отношения к вопросу, но мне было интересно — подходит ли такая базовая настройка? Часть входа и аутентификации? Я действительно не делал этого таким образом раньше.