如何解决如何使用使用 Postgres 代码的 Flyway 迁移创建 DataJpaTest?
我在 Spring Boot 应用程序中运行测试时遇到了一些困难,这些应用程序具有管理迁移的飞路,所有测试应用程序并失败,因为飞路尝试运行迁移。
我已经安装了 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 表而不使用迁移,或者所有测试在不启动 spring 应用程序的情况下运行?如果是真的,我可以在没有 spring 应用程序的情况下测试存储库吗?
谢谢
解决方法
我建议在测试中禁用 Flyway 并启用 Hibernate 自动模式创建。
您可以使用属性来启用和禁用功能:
- 禁用飞行路线:
spring.flyway.enabled=false
- 启用 Hibernate 架构创建
spring.jpa.hibernate.ddl-auto=create
例如
@SpringBootTest(properties = {
"spring.flyway.enabled=false","spring.jpa.hibernate.ddl-auto=create" })
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。