gpt4 book ai didi

java - 如何强制多个 hbm2ddl 执行单独运行?

转载 作者:行者123 更新时间:2023-12-02 02:21:42 24 4
gpt4 key购买 nike

我们将 JavaEE 应用程序作为 WAR 部署在多个 Wildfly 服务器中。作为持久性框架,我们使用 JPA 和 Hibernate 作为实现。

为了保证我们的实体类有匹配的数据库模式,我们在 persistence.xml 中有以下条目:

<property name="hibernate.hbm2ddl.auto" value="update" />

现在使用它可以轻松维护高度不稳定的数据库模式,因为我们的域模型目前还远未稳定。

如果我们在单个服务器实例中部署 2 个 WAR(包含相同的实体),则两个 WAR 将尝试更新数据库架构。我们通过 Ansible 复制任务进行部署,这会导致两个 WAR 并行启动,并并行执行两个 hbm2ddl 执行,这会给我们带来错误。

现在的问题是,Hibernate 是否有内置方法可以通过 hbm2ddl 禁止并行执行架构迁移?

最佳答案

没有。您应该考虑使用 Flyway 或 Liquibase 等工具来迁移数据库。

关于java - 如何强制多个 hbm2ddl 执行单独运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48402684/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com