关于laravel 数据库事务使用的一个小坑

事情大概发生在几个月前,在开发过程中遇到了事务无法回滚的情况,前后排查了1小时没有找到问题的原因,最后我觉得从这个业务的每一个model去排查,最后发现了事务开启过程中的细微差别。

在我们线上的业务应用中,为了缓解数据库的访问压力,我们通常会为数据库设置主从数据库,主数据库用于写,从数据库用于读。而在我们的model配置中如果不设置连接主数据库的话,通常会走default配置。而如果你的default配置是读库,那么在进行数据库回滚的时候就会出现问题。

相当于你在主数据库开启了失误,而在从数据库进行commit或roallback,而避免出现这种情况的最好方式就是在model使用的过程中,加上强制连接主库,这样就不会出现与我类似的问题。

发表评论

电子邮件地址不会被公开。 必填项已用*标注