代码之家  ›  专栏  ›  技术社区  ›  Matt

Hibernate“自动模式更新”是否删除了它不拥有的内容?

  •  0
  • Matt  · 技术社区  · 7 年前

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

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

    1 回复  |  直到 7 年前
        1
  •  0
  •   Guilherme Mussi    7 年前

    我强烈建议您在这里阅读更多相关信息: 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