Hbm2ddl更新不会删除约束

一分耕耘一分收获 :

众所周知,hbm2ddl休眠更新操作永远不会删除列或约束或更改列dataType,有什么方法可以做到这一点?谢谢。

Smutje:

我基本上看到了三种不同的方法。

  1. 使用Flyway或Liquibase之类的数据库迁移工具来管理数据库结构,并且不要使用Hibernates内部机制
  2. 编写自己的数据库迁移工具(不推荐)
  3. 设置hibernate.hbm2ddl.autocreate每次都可重新创建模式(具有丢失数据的缺点)。

我个人总是建议在有必要进行迁移时使用“专业”数据库迁移工具,并且仅对演示项目或概念验证使用Hibernates内置机制,因为提到的Flyway或Liquibase之类的工具会将数据库迁移存储在可以版本化的文件中。过去的迁移透明且可复制。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何关闭hbm2ddl?

在hbm2ddl之前创建架构

hbm2ddl更新在Spring Boot中给出错误

Hibernate hbm2ddl.auto更新不会使用mysql删除列

表格不是由hibernate的hbm2ddl创建的

Hibernate 3 Maven插件hbm2ddl非常慢

如何使hbm2ddl schemaExport将架构记录到stdout?

休眠hbm2ddl create是否有任何liquibase问题?

使用HSQL休眠-未使用hbm2ddl创建表

MySQL DATETIME精度(joda-time,Hibernate,org.jadira.usertype,hbm2ddl)

Hiberante自动列表映射-失败hibernate3:hbm2ddl

运行导出器#2:hbm2ddl时发生异常(生成数据库架构)

休眠错误时hbm2ddl.auto要更新

休眠状态:hbm2ddl.auto =更新并自动递增

Hibernate hbm2ddl.auto创建/更新跳过视图

休眠:hbm2ddl.auto =正在生产中更新?

动态禁用hbm2ddl.auto?

hibernate.hbm2ddl.auto配置

休眠“ hbm2ddl-创建”在春季不起作用

“ hibernate.hbm2ddl.auto”不创建表吗?

Hibernate hbm2ddl.auto默认值

Hibernate-hibernate.hbm2ddl.auto =验证

Hibernate使用hbm2ddl.auto = update保留一些表,使用hbm2ddl.auto = create重新加载一些表

属性hibernate.hbm2ddl.auto无法按预期工作(MySQL 5.7)

休眠:hibernate.hbm2ddl.auto = update显示生成的SQL

为什么 hbm2ddl.auto 'update' 属性不起作用或它是如何工作的?

如何调试与hsqldb结合使用的hibernate.hbm2ddl.import_files值的处理?

hbm2ddl.auto设置为“ UPDATE”,但是它尝试在每次插入之前创建表

Spring MVC 3与Hibernate(和hibernate.hbm2ddl.auto)