Я работаю над своим приложением Spring-Boot-Application, которое использует базу данных. Я хочу дать пользователю возможность использовать встроенную базу данных (для быстрого тестирования) или базу данных на жестком диске (для долгосрочного использования). Мой способ добавить флаг bool в application.properties, прочитать это в конфиге и создать требуемый источник данных.Spring-Boot/H2 Запись моментальных снимков базы данных в файловую систему
@Bean
public DataSource dataSource() {
if (embedded) {
EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
EmbeddedDatabase db = builder
.setType(EmbeddedDatabaseType.H2)
.addScript("db.sql")
.build();
return db;
} else {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(driver);
dataSource.setUrl(databaseURL);
dataSource.setUsername(databaseUser);
dataSource.setPassword(databasePassword);
return dataSource;
}
}
Это прекрасно работает. Моя проблема прямо сейчас заключается в том, что я хочу сохранить встроенную базу данных между сеансами и снова загрузить ее содержимое, если приложение запускается снова (если пользователь ранее использовал встроенную базу данных и снова использует его, чтобы он не потерял свои данные)
Что нужно добавить к моему коду, чтобы база данных создавала моментальные снимки и использовала их снова при запуске?
Greetz и спасибо за вашу помощь, Патрик
Спасибо вам за ответ! К сожалению, я не вижу способа настроить URL-адрес соединения в EmbeddedDataBaseBuilder –