我真的想知道更多关于更新,导出和可以给hibernate.hbm2ddl.auto
的值的更多信息
我需要知道何时使用更新,何时不知道?还有什么选择?
这些是可能发生在 DB 上的变化:
在每种情况下,最佳解决方案是什么?
来自社区文档 :
hibernate.hbm2ddl.auto 创建 SessionFactory 时,自动验证或将架构 DDL 导出到数据库。使用 create-drop,当 SessionFactory 显式关闭时,将删除数据库模式。
例如验证 | 更新 | 创建 | 创建降
所以可能的选项列表是,
这些选项似乎是开发人员工具,而不是为了促进任何生产级数据库,您可能想要查看以下问题; Hibernate:hbm2ddl.auto = 在生产中更新?
还有 “无” 的无证值可以完全禁用它。
配置属性名为hibernate.hbm2ddl.auto
在我们的开发环境中,我们将hibernate.hbm2ddl.auto=create-drop
为 drop,并在每次部署时创建一个干净的数据库,以便我们的数据库处于已知状态。
理论上,您可以设置hibernate.hbm2ddl.auto=update
来更新您的数据库,并更改您的模型,但我不相信它在生产数据库上。文档的早期版本说这至少是实验性的; 我不知道目前的状况。
因此,对于我们的生产数据库,请不要设置hibernate.hbm2ddl.auto
- 默认情况下不进行数据库更改。相反,我们手动创建一个 SQL DDL 更新脚本,该脚本将更改从一个版本应用到下一个版本。