На самом деле я пишу небольшое веб-приложение с весенней загрузкой и хотел использовать (встроенную) базу данных H2 вместе с Spring Data JPA и Flyway для миграции базы данных.
Это мое приложение.Свойства:
spring.datasource.url=jdbc:h2:~/database;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1;
spring.datasource.username=admin
spring.datasource.password=admin
spring.datasource.driver-class-name=org.h2.Driver
В методе main() моего класса @SpringBootApplication я делаю следующее:
ResourceBundle applicationProperties = ResourceBundle.getBundle("application");
Flyway flyway = new Flyway();
flyway.setDataSource(applicationProperties.getString("spring.datasource.url"), applicationProperties.getString("spring.datasource.username"), applicationProperties.getString("spring.datasource.password"));
flyway.migrate();
Я добавил сценарий, который создает таблицу USER в базе данных, Flyway говорит, что она правильно перенесена, но если я подключаюсь к базе данных, в схеме PUBLIC есть только таблица schema_versions из списка Flyway.
Если я добавляю другой скрипт, который вставляет базовые данные в таблицу USER, миграция завершается неудачей, поскольку таблица отсутствует после перезапуска моего весеннего загрузочного приложения.
Может ли кто-нибудь сказать мне, отсутствует ли он в моей конфигурации? Или если в моей настройке есть какое-то неверное предположение...
spring.jpa.hibernate.ddl-auto=none
к моемуapplication.properties
данные Spring и пролетный путь выполняют назначенную работу должным образом. Большое спасибо за Ваш ответ! 17.08.2015