hibernate 中 hibernate.hbm2ddl.auto=update 时,执行初始化数据库数据的最好办法?

2019-04-29 17:07:25 +08:00
 wzdbsss

在 spring boot 项目中使用 hibernate 设置 hibernate.hbm2ddl.auto=update 时,在新的环境部署时会自动创建数据库表结构,但不会执行 data.sql 中的数据库初始语句。但使用 create,就会在第二次启动时清除数据库重新创建。

期待的结果 在 hibernate 中使用 hmb2ddl.auto=update 的同时,部署到新环境时自动初始化 data.sql 里面的语句插入一些初始数据

1941 次点击
所在节点    Java
4 条回复
wc951
2019-04-30 08:21:09 +08:00
springboot 官方文档拉到最下面数据库初始化部分自己看,hibernate 原生用的是 import.sql ,而且好像 update 是不会执行 sql 文件的
gongxufan
2019-04-30 14:37:48 +08:00
最好别依赖这个机制,现场清库的风险担不起
hantsy
2019-05-01 19:47:19 +08:00
开发时 Update 策略不错。
生产环境直接用 none, 配合 CI/CD 的话,用 Flyway (相当于 database 也版本控制了)更多一些。
wzdbsss
2019-05-02 17:11:23 +08:00
@gongxufan 文档上没提到 update 会清空数据库

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/559818

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX