2015-04-20 4 views
1

В моем случае я использую весенний ботинок с градиентом и добавленный пролет, просто положив 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; 
    } 
+1

Что входит в сценарий сброса и какова синтаксическая ошибка? –

+0

Сценарий из ответа http://stackoverflow.com/questions/12403662/how-to-drop-all-mysql-tables-from-the-command-line –

ответ

0

Идём для Flyway.clean(). Он делает именно то, что вы хотите. Не нужно писать собственный сценарий сброса.

+0

Это аналогичные вопросы (по крайней мере, решение): http://stackoverflow.com/questions/29745995/execute-sth-after-or-before-bean-is-created – koe

Смежные вопросы