hibernate "auto schema update" 会丢弃任何它不拥有的东西吗?

Does hibernate "auto schema update" drop anything it doesn't own?

我有多个项目,每个项目都有自己的实体、索引等(使用 spring-data 但底层 JPA 提供程序是 Hibernate 5.0.12)。假设项目 A 有 entities/tables T 和 U,项目 B 有 entities/tables V 和 W,两个项目都连接到同一个 MySQL 数据库。如果我在每个项目上设置 hibernate.ddl-auto: update,这些项目是否会相互干扰?项目 A 会看到表 V 和 W 并思考 "hey, those tables aren't in my schema, I'll get rid of them" 吗?

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

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