hibernate的“自动模式更新”会删除它不拥有的东西吗?

kupeojn6  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(432)

我有多个项目,每个项目都有自己的实体、索引等(使用spring数据,但底层jpa提供程序是hibernate5.0.12)。假设项目a有实体/表t和u,项目b有实体/表v和w,两个项目都连接到同一个mysql数据库。如果我设置 hibernate.ddl-auto: update 在每一个项目上,这些项目会互相干扰吗?项目a是否会看到表v和w并认为“嘿,那些表不在我的模式中,我会把它们去掉”?
在将多个hibernate模式与auto update连接到同一个mysql数据库时,还有其他问题需要注意吗?最终,当我们进行生产部署时,我们将创建一个大的统一“模型”项目,所有项目都将它作为一个依赖项,但是当我们进行原型设计时,仅仅将必要的实体扔进相关的项目中要快得多,但如果它会导致问题的话就不行了!

zzlelutf

zzlelutf1#

我强烈建议你在这里多读一些:https://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html
但要回答你的问题:不,它不会掉任何东西。。
更新过程将搜索它可以创建的所有列,然后创建这些列。甚至不可能更改数据库类型(例如,从int到string)。
在这种情况下,最好使用flyway或liquibase之类的工具。https://flywaydb.orghttps://www.liquibase.org

相关问题