我有一个使用 SQL Server Express 作为后端数据库的 Java EE 应用程序。当我们部署新版本时,有时我们需要更改数据库:添加表、添加列、删除列、合并表、合并列等。
直到今天,我们都使用离线 SQL 脚本来修改数据库,但这种解决方案不可扩展且非常容易出错。
我们开始使用具有 @PostConstruct 装饰方法的单例启动 bean 来添加和删除系统在部署期间使用的数据。
我们现在还想发布 DML 语句,以便我们可以在部署期间升级我们的数据库并一劳永逸地消除 SQL 脚本。
- 有没有人尝试过,这是好的方向吗?
- 我们应该使用 entityManager.unwrap 方法还是简单地将 JDBC DataSource 资源注入我们的单例启动 bean?