我有一个应用程序,我试图使用H2进行测试。
这是我的application.yml:
spring:
datasource:
url: jdbc:h2:mem:appdb;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false
jpa:
database-platform: org.hibernate.dialect.H2Dialect
flyway:
url: jdbc:h2:mem:appdb;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false
user: "root"
password: ""
locations: classpath:/db/migration, classpath:/db/seed
Flyway成功运行迁移(或者至少看起来如此),并且成功创建了表,如启动所示:
2018-04-03 08:47:42.956 INFO 17980 --- [ main] o.f.core.internal.command.DbMigrate : Migrating schema "PUBLIC" to version 0
...
甚至看起来我的种子正在“工作”:
2018-04-03 08:47:43.162 INFO 17980 --- [ main] o.f.core.internal.command.DbMigrate : Migrating schema "PUBLIC" with repeatable migration Seed sample
它告诉我它有效:
2018-04-03 08:47:43.188 INFO 17980 --- [ main] o.f.core.internal.command.DbMigrate : Successfully applied 18 migrations to schema "PUBLIC" (execution time 00:00.283s)
我的SQL文件是用PostgreSQL的SQL方言编写的。但是,我已经读过,在H2Dialect上留下休眠是好的。
当测试开始运行时,在测试完成运行时会出现数据库中没有任何内容,因此测试失败。
我的想法是H2在测试结束前关闭了数据库,但这对我来说似乎很奇怪。种子和桌子工作正常。
我能做些什么来验证一切在这里工作,还是我尚未尝试的选项?
答案 0 :(得分:0)
尝试将Flyway架构设置为您的数据库名称:
flyway:
schemas: appdb