hibernate"自动架构更新"放弃它不拥有的任何东西?

时间:2018-06-12 11:34:18

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

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

在将多个hibernate模式与自动更新连接到同一MySQL数据库时,是否还有其他问题需要注意?最终,当我们进行生产部署时,我们将创建一个统一的大型模型"项目和所有项目都将它作为依赖项,但是在我们进行原型设计时,只需将必要的实体放入相关项目中就可以更快 - 但如果它会导致问题,那就更快了!

1 个答案:

答案 0 :(得分:0)

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