SQLBoilerはDeleteするときに論理削除が使える。
詳細は【Go】sqlboilerで論理削除を実装する | ISSUEが詳しい。
論理削除のときはdeleted_at
カラムがセットされる。
で、そのときupdated_at
は更新されない。
論理削除した行を元に戻したいとき、deleted_at
にnull.Time{}
をセットしてupdateすれば元通りになるかというと、updated_at
が更新されてしまって完全に元通りとは言えない状態。
どうするか。
volatiletech/sqlboiler: Generate a Go ORM tailored to your database schema.にあるように、contextでboil.SkipTimestamps
を使う。
つまりmodel.Update(boil.SkipTimestamps(context.Background()), db , boil.Infer())
こんな感じ。