休眠 – Flyway或Liquibase可以生成更新脚本,而不是直接更新数据库?

前端之家收集整理的这篇文章主要介绍了休眠 – Flyway或Liquibase可以生成更新脚本,而不是直接更新数据库?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
首先,有一点背景.我有一套 Java应用程序,一些基于JPA,有些不是.要创建我的数据库,我正在使用Hibernates模式导出来为使用JPA的用户生成脚本.那些不使用JPA的人手动生成脚本.然后在使用ANT的应用程序安装期间运行这些.对于更新,应用程序安装程序只需将更新脚本应用于数据库.

为了改进数据库更新的管理,我一直在看Flyway和Liquibase.两者似乎几乎都是做我想要的(除此之外,我喜欢现在的Flyway,因为我们拥有的所有预先存在的sql / DDL脚本).我可以看到的问题是它们都直接更新数据库.这对于很多安装是不错的,但并不是全部.

我想做的是对数据库运行Flyway / Liquibase,并生成更新脚本,其中包含使数据库更新所需的所有更新,包括Flyway / Liquibase需要对其自己的表进行任何更改.这将允许我(或更重要的是数据库管理员)在应用程序之外运行更新脚本来更新数据库.我可以在我的应用程序中使用Flyway / Liquibase,仅仅是为了验证数据库是否是最新的.

有可能用Flyway或Liquibase或任何其他工具这样做吗?

解决方法

Liquibase处理很好.它在当前状态下查看数据库,查找未应用的更改集,并在 sql output mode生成带有update命令的sql脚本.

使用适当的数据库迁移工具而不是Hibernate生成器是无处不在的方式,迟早会遇到Hibernate不支持的情况.对我们来说,它正在丢弃一个独特的索引,并用另一个替换它.您还可以启用hibernate.hbm2ddl.auto = validate以确保数据库结构和实体bean之间的兼容性.

原文链接:https://www.f2er.com/mssql/81342.html

猜你在找的MsSQL相关文章