【问题标题】:Does hibernate "auto schema update" drop anything it doesn't own?hibernate“自动模式更新”会丢弃它不拥有的任何东西吗?
【发布时间】:2018-06-12 11:34:17
【问题描述】:

我有多个项目,每个项目都有自己的实体、索引等(使用 spring-data,但底层 JPA 提供程序是 Hibernate 5.0.12)。假设项目 A 具有实体/表 T 和 U,项目 B 具有实体/表 V 和 W,并且两个项目都连接到同一个 MySQL 数据库。如果我在每个项目上设置hibernate.ddl-auto: update,这些项目会相互干扰吗?项目 A 是否会看到表 V 和 W 并认为“嘿,这些表不在我的架构中,我会摆脱它们”?

在连接多个具有自动更新功能的休眠模式到同一个 MySQL 数据库时,我还应该注意哪些其他问题?最终,当我们进行生产部署时,我们将创建一个大的统一“模型”项目,所有项目都将其作为依赖项,但是在我们进行原型设计时,将必要的实体放入相关项目中会更快——但不是如果它会引起问题!

【问题讨论】:

    标签: java mysql hibernate spring-data-jpa database-schema


    【解决方案1】:

    我强烈建议您在此处阅读有关此内容的更多信息: https://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html

    但要回答您的问题:不,它不会掉落任何东西。

    更新过程将搜索它可以创建的所有列,然后创建这些列。甚至无法更改数据库类型(例如,从 int 到 string)。

    在这种情况下,强烈建议使用 Flyway 或 Liquibase 等工具。 https://flywaydb.org https://www.liquibase.org

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-14
      • 2015-02-16
      • 1970-01-01
      • 2021-02-24
      • 1970-01-01
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多