2017-02-08 27 views
0

Я работаю над своим приложением 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 и спасибо за вашу помощь, Патрик

ответ

1

настроить его, хотя connection URL.

+0

Спасибо вам за ответ! К сожалению, я не вижу способа настроить URL-адрес соединения в EmbeddedDataBaseBuilder –