Java 是否有类似于 .Net Framework 和 Entity Framework 的迁移工具

Abi*_*Abi 3 hibernate database-migration flyway spring-boot

我最近从一个使用 .Net Framework 和 Entity Framework 的项目切换到使用 Spring Boot 2 和 Hibernate 的 Java 项目。在处理 .Net Framework 项目时,每当我需要更新数据库架构时,例如,更改表中列的类型,过程只是更改数据访问层中的模型,然后运行迁移命令来创建迁移文件。然后另一个命令来应用它。

根据我的研究,Flyway 和 Liquibase 在处理数据库迁移时都是不错的选择。我研究过 Flyway,发现这个过程非常相似,除了我必须自己用 sql 或 java 代码创建迁移并将其放在特定目录中。

Java(特别是 Spring Boot 应用程序)是否具有类似于 .Net Framework 和 Entity Framework 提供的数据库迁移工具?

tta*_*ski 6

不,JDK不包含这样的工具,你必须使用第三方库。我参与过的所有项目都使用 Flyway 作为迁移工具,它很好地满足了我们的需求,用 SQL 编写了大部分迁移。

Hibernate 本身提供了基于 Java 代码迁移数据库模式的有限可能性,这在用于开发目的时很好,但我还没有听说有团队在生产中使用它。

如果您使用 Spring Boot 作为框架,它可以与 Hibernate、Flyway 和 Liquibase 很好地集成:https://docs.spring.io/spring-boot/docs/2.3.2.RELEASE/reference/html/howto.html #如何数据库初始化