作为一个12年的老程序猿竟然从未更新过springboot框架中配置的hibernate自动更新配置表结构

前言

本人这两年都在独立维护某个多语言java+python+c架构的安全项目,每次给客户部署系统的时候都会有一个问题出现,就是数据库的表会被系统启动后进行实体对应更新字段,以至于某个类id命名总是会覆盖到数据库表,造成部署失败,在一个无网络的远程环境去更新部署项目是最麻烦的,但是最严重的不是这些,而是本人的懒惰症!!!因为即使这个问题存在,我也重来没去重视过,每次都是手动去解决重新维护该表,而不是从根本上解决

问题

在springboot2.6环境下,使用application配置文件,我们通常会在数据库连接中增加jpa的配置,当然这种方案是针对使用jpa项目而非mybatis,我为什么习惯用jpa是因为实在不想写一堆繁琐的xml文件,当然在某些需求某些环境某些项目必要的情况下还是需要针对性的去使用对应的框架。好了言归正传,
那么在配置jpa的过程中我们使用了:

  jpa:
    database: mysql
    show-sql: true
    hibernate:
      ddl-auto: update

之所以要用update是为了保证项目开发中实时自动的表以及表更新并进行对应的实体->数据库表的同步,当然这种做法是好的,也是高效率的。问题就出现在当你要部署项目的时候,通常你将以前的数据库表结构进行部署更新,而新增的表结构并没有维护到以前的数据库表结构中,当然这种情况其实很少会出现,然而我在这个项目中遇到了。

解决

这里我将 ddl-auto: none 修改了配置,因为对于我来说,在这个项目表设计和实体设计完全独立工作,我并不打算将他们混为一谈,并且这个项目新增修改相对已经较少,并非开发阶段。这样有一个好处是每次的表结构新增或者修改我都会完全掌控并且清晰的认识到哪里要维护修改,这样对于我们的业务有一个全局把握;坏处是每次实体更新变动,你都要去维护你的数据库表,这样会繁琐,但是我认为这不是问题,毕竟作为一个程序员这点小工作是很有必要的,问题在于我们去维护数据库表的同时能更详细的去操作字段的某些属性。

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

火焰蔷薇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值