【发布时间】:2018-09-13 00:47:03
【问题描述】:
我有一个应用程序正在尝试使用 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 在测试完成之前关闭了数据库,但这对我来说似乎很奇怪。种子和桌子工作正常。
我可以做些什么来验证这里的一切是否正常,或者我还没有尝试过哪些选项?
【问题讨论】:
标签: java hibernate spring-boot h2 flyway