实际上,我正在用spring-boot编写一个小型web应用程序,并希望将(嵌入式)H2数据库与SpringDataJPA和Flyway一起用于数据库迁移。
这是我的application.properties:
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
在@SpringBootApplication类的main()方法中,我执行以下操作:
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中,只列出了Flyway的schema_versions表。
如果我正在添加另一个脚本,将基本数据插入到USER表中,迁移将失败,因为在重新启动我的spring boot应用程序后,该表不存在。
谁能告诉我我的配置中是否缺少?或者如果我的设置中有任何错误的假设。。。