İçeriğe geç

Çoklu Yazmada Eksik Transaction (ARCH5065)

Anahtar go.orm.missing-transaction-for-multi-write · Önem warning · Kategori orm

Aynı metotta birbirine bağlı iki veya daha fazla yazma işleminin transaction’a sarılmaması, kısmi commit riski yaratır. Atomik bir blok kullanın.

db.Create(&order)
db.Create(&payment) // ilki başarılı, bu başarısız olursa tutarsız durum
db.Transaction(func(tx *gorm.DB) error {
if err := tx.Create(&order).Error; err != nil {
return err
}
return tx.Create(&payment).Error
})

Birbirine bağlı çoklu yazma işlemlerini db.Transaction ile tek bir atomik blokta birleştirin.