<property name="hibernate.hbm2ddl.auto">update</property>
我可以创建我的数据库模式,它会自动添加属性、约束、键等等...
但是如果我更新数据库模式呢?
如果我从实体中删除某些属性,Hibernate 不会将其删除,或者如果我更改某些约束,Hibernate 不会触及已经创建的约束...那么,有没有办法让 Hibernate 真正更新数据库模式呢?
谢谢。
但是,要将所有内容整合在一起,不能仅仅通过这种方式创建完整的工具,因为如果代码中重命名了某个列会怎么样?如果类型更改而不是自动转换(bool到date?)如果您没有访问重构历史记录,则无法始终传播更改。
没有。hbm2ddl不是用于完全管理模式迁移的工具。最好只在模式有增量变化时使用它,对于其他任何更改请手动编辑生成的脚本。
我们目前使用Liquibase来以数据库无关的方式进行自动数据库更改。也许可以直接从您的Hibernate注释中提取Liquibase命令,但我认为这样的工具不存在,所以您可能需要自己完成。