禁用 spring jpa 的自动建表配置 spring.jpa.hibernate.ddl-auto

更新日期: 2020-12-18 阅读次数: 8329 字数: 196 分类: spring

目前在 spring 的配置文件

src/main/resources/application.properties

中,设置了

spring.jpa.hibernate.ddl-auto=update

于是,每次启动 spring boot 时,都会根据 entity 类自动建表。

但是,实际上,我并不需要这个功能,原因:

  • 因为我还是喜欢用 MySQL Workbench 来进行建表和该表操作
  • 线上生产环境自动执行 DDL 操作非常危险

可选值

  • update:自动新增不存在的数据表,和字段。不会影响数据
  • create:自动新建不存在的数据表;但是,同时会清空数据。。。
  • create-drop:同 create,同时在服务停止时 drop 所有表。。。
  • validate:只校验,不修改表。但是校验什么呢?
  • none:啥也不做。

看起来 none 是完全满足我的需求的。但是 validate 如果能做检查,岂不是更好?

设置 validate 还是 none

看起来 validate 更严谨一些,可以自动校验数据表字段是否映射到了 Entity 类属性上。

spring.jpa.hibernate.ddl-auto=validate

参考

  • https://zhuanlan.zhihu.com/p/143209111

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式