我实际上是在用Spring Boot编写一个小型Web应用程序,并想将一个(嵌入式)H2数据库与Spring Data JPA和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应用程序后该表不存在。
谁能告诉我配置中是否缺少内容?或者如果我的设置中有任何错误的假设...
我的配置数据不足
提示:请参阅迁移文件必须是dicrectory / db / migration的一部分
提示在分数下使用V1.0.1__name.sql 2之类的模式
提示取决于Flyway版本,您应该以大于1.0的sql文件版本(例如1.0.1)开头。
如果使用内存数据库,则默认的spring boot jpa提示会删除数据库内容。参见http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-sql.html第28.3.3节。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句