我正在使用DB::transaction
和SoftDeletes
。
对于那些不熟悉Laravel的人来说,Laravel的SoftDelete
功能抽象了数据库中行的设置/查询。删除记录时,字段deleted_at
会被赋予时间戳,否则此字段为null
。然后,此字段用于查询以仅获取未删除的行。
目前我有一个每天运行的脚本,用于删除超过7天的所有软删除条目。
这是我的问题/问题所在。如果我的DB ::事务跨越for let表示10秒并将结束写入添加到表A 和表B ,以便两个表中的条目都有不同的时间戳。
我可以想象一下清理脚本执行时的情况,可以删除条目记录的HALF。
我的问题是
答案 0 :(得分:1)
我能看到它工作的唯一方法,就像你说的那样,你的数据不会被部分恢复搞砸似乎是关键任务,就是在受影响的表中包含一个交易号。
需要调整清理程序。除非事务中的所有时间戳超过7天,否则交易不能随后被soft deleted
和删除。