데이터베이스를 사용중인 Spring-Boot-Application에서 작업하고 있습니다. 사용자에게 내장 데이터베이스 (빠른 테스트 용) 또는 하드 드라이브 기반 데이터베이스 (장기간 사용시)를 사용할 수있는 옵션을 제공하고 싶습니다. 제 방법은 application.properties에 bool 플래그를 추가하고, config에서 이것을 읽고 원하는 DataSource를 생성하는 것입니다.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와 당신의 도움을 주셔서 감사합니다, 패트릭
답장을 보내 주셔서 감사합니다. 안타깝게도 EmbeddedDataBaseBuilder에서 연결 URL을 구성하는 방법을 보지 못했습니다. –