database - 在更新 Java EE 应用程序时迁移数据库模式

标签 database jakarta-ee glassfish dbmigrate

我有一个 Java EE 应用程序,它使用 SQL Server Express 作为后端数据库。 当我们部署新版本时,有时我们需要更改数据库:添加表、添加列、删除列、合并表、合并列等。

直到今天,我们使用离线 SQL 脚本来修改数据库,但这种解决方案不可扩展且错误修剪率很高。

我们开始使用具有@PostConstruct 装饰方法的单例启动 bean 来添加和删除系统在部署期间使用的数据。

我们现在还想发出 DML 语句,以便我们可以在部署期间升级我们的数据库并一劳永逸地消除 SQL 脚本。

  1. 有没有人尝试过,这个方向好吗?
  2. 我们应该使用 entityManager.unwrap 方法还是简单地将 JDBC 数据源资源注入(inject)到我们的单例启动 bean 中?

最佳答案

我们最近开始使用 并且对此非常满意。 documentation is very good .简而言之:您包含一组带有版本的 SQL 脚本。 Flyway 引擎将拾取尚未应用的 SQL 脚本(创建了一个特殊的元数据表)并运行它们。您可以使用带版本的 SQL 或纯 Java。

关于database - 在更新 Java EE 应用程序时迁移数据库模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10161776/

相关文章:

sql - 数据库的一致只读 View

sql - “repeatable read”和 “snapshot isolation”有什么区别

javax.mail.MessagingException 无法连接到 SMTP 主机端口 :25 response -1

java - 在 Debian 中设置 Java EE 开发环境

java - mongodb套接字中的java.lang.Throwable错误是什么意思?

java - 每个请求都会创建注入(inject) @Model bean 的 EJB (GlassFish)

mysql - 从具有分层数据的表中删除记录

php - 有没有好的 PHP CRUD 代码生成器?

java - Java SE应用程序可以集群吗

java - 设置 Glassfish 数据源问题