В моем случае я использую весенний ботинок с градиентом и добавленный пролет, просто положив compile 'org.flywaydb:flyway-core'
на build.gradle
.Очистить базу данных при запуске при использовании пролетного пути
Для запуска симулятора, который находится в test
, я хотел бы очистить базу данных перед каждым прогоном. Я положил reset script в /src/test/resources/db/migration/V1.0__Reset.sql
(с реальным sql-скриптом init на /src/main/resources/db/migration/V1.1__Init.sql
), но получает исключение SyntaxException из-за сценария сброса, который не возникает, когда я запускаю его из MySQL Workbench.
Как сбросить или очистить базу данных при запуске?
- ОБНОВЛЕНИЕ -
Я пытался использовать Spring DataSourceInitializer
, но это, кажется, пролетный путь скрипты выполняются до того, как DS инициализации, так что это приводит к ошибке Hibernate Синтаксис, поскольку таблицы не являются найденный.
@Resource
DataSource ds;
@Bean
public DataSourceInitializer dbInit() throws FileNotFoundException, URISyntaxException {
public DataSourceInitializer dbInit() throws FileNotFoundException, URISyntaxException {
DataSourceInitializer re = new DataSourceInitializer();
re.setDataSource(ds);
re.setEnabled(true);
String str = "classpath:sql/V1.0__Reset.sql";
URL url = ResourceUtils.getURL(str);
org.springframework.core.io.Resource resi = new PathResource(url.toURI());
// new org.springframework.core.io.ClassPathResource(str)
re.setDatabasePopulator(new ResourceDatabasePopulator(resi));
return re;
}
Что входит в сценарий сброса и какова синтаксическая ошибка? –
Сценарий из ответа http://stackoverflow.com/questions/12403662/how-to-drop-all-mysql-tables-from-the-command-line –