我有多个项目,每个项目都有自己的实体、索引等(使用 spring-data 但底层 JPA 提供程序是 Hibernate 5.0.12)。假设项目 A 具有实体/表 T 和 U,项目 B 具有实体/表 V 和 W,并且两个项目都连接到同一个 MySQL 数据库。如果我在每个项目上设置 hibernate.ddl-auto: update ,这些项目是否会互相干扰?项目 A 是否会看到表 V 和 W 并认为“嘿,这些表不在我的架构中,我将摆脱它们”?
当连接多个 hibernate 模式并自动更新到同一个 MySQL 数据库时,我还应该注意其他问题吗?最终,当我们进行生产部署时,我们将创建一个大的统一“模型”项目,并且所有项目都将其作为依赖项,但是当我们进行原型(prototype)设计时,只需将必要的实体放入相关项目中会更快 - 但不是如果它会引起问题!
最佳答案
我强烈建议您在这里阅读更多相关内容: 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
关于java - hibernate "auto schema update"是否会丢弃它不拥有的任何内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50816146/