Witam wszystkich,
Bawię się troche z wbudowaną bazą H2. Całość skonfigurowana przy użyciu springa, wykorzystuję JPA. Wszystko zdaje się ładnie działać oprócz jednego:
chciałbym, aby po zamknięciu aplikacji utworzona baza była usuwana, tak aby każde uruchomienie powodowało rekreację, dodanie danych testowych od nowa i pracę w środowisku bez efektów ubocznych pozostałych po poprzednich uruchomieniach. Poniżej konfiguracja źródła danych.
@Bean(name = "dataSource")
public DataSource getDataSource() {
DataSource dataSource = createDataSource();
DatabasePopulatorUtils.execute(createDatabasePopulator(), dataSource);
return dataSource;
}
private DatabasePopulator createDatabasePopulator() {
ResourceDatabasePopulator databasePopulator = new ResourceDatabasePopulator();
databasePopulator.setContinueOnError(true);
databasePopulator.addScripts(new ClassPathResource("sql/schema-script.sql"), new ClassPathResource("sql/" + ModeUtils.getMode().getModeName() + "-data-script.sql"));
return databasePopulator;
}
private SimpleDriverDataSource createDataSource() {
SimpleDriverDataSource simpleDriverDataSource = new SimpleDriverDataSource();
simpleDriverDataSource.setDriverClass(org.h2.Driver.class);
simpleDriverDataSource.setUrl("jdbc:h2:~/database/" + databaseName + ";AUTO_RECONNECT=FALSE");
simpleDriverDataSource.setUsername(databaseUser);
simpleDriverDataSource.setPassword(databasePassword);
return simpleDriverDataSource;
}
Prawdopodobnie jest to kwestia jakiegoś parametru w url, ale po wstępnych oględzinach nie znalazłem nic co by mnie satysfakcjonowało.
Czy ma ktoś jakiś pomysł?