如何用使用postgres代码的flyway迁移创建datajpatest?

ldfqzlk8  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(288)

我在springboot应用程序中运行测试时遇到了一些困难,这些应用程序使用flyway来管理迁移,所有的测试都失败了,因为flyway尝试运行迁移。
我已经安装了h2并使用@datajpatest尝试修复这个问题,应用程序正常启动但崩溃,因为存在于迁移文件中的代码。例子:

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

CREATE TABLE app_user (
    id uuid DEFAULT uuid_generate_v4() NOT NULL PRIMARY KEY,
    name varchar(200) NOT NULL
);

正如您所看到的,所有迁移文件都有postgres语法,属性是hibernate:ddl auto:validate
那么,有没有办法只在测试中从@entity创建一个h2表而不使用迁移,或者所有测试都不使用start-spring应用程序运行?如果为true,我可以在没有spring应用程序的情况下测试存储库吗?
谢谢

iaqfqrcu

iaqfqrcu1#

我建议在测试中禁用flyway并启用hibernate自动模式创建。
可以使用属性启用和禁用功能:
禁用飞行路线: spring.flyway.enabled=false 启用休眠模式创建 spring.jpa.hibernate.ddl-auto=create 例如

@SpringBootTest(properties = {
   "spring.flyway.enabled=false",
   "spring.jpa.hibernate.ddl-auto=create" })

相关问题