GORM выполняет операции записи (создания/обновления/удаления) внутри транзакции, чтобы обеспечить целостность данных, вы можете отключить транзакции в процессе инициализации, если они не требуются, что приводит к приросту производительности примерно в +30%
Gorm supports calling transaction control functions (commit / rollback) directly, for example:
// начало транзакции tx := db.Begin()
// выполнить операции с БД в транзакции (используйте 'tx' вместо 'db') tx.Create(...)
// ...
// откатить транзакцию в случае ошибки tx.Rollback()
// фиксация транзакции tx.Commit()
Конкретный пример
funcCreateAnimals(db *gorm.DB)error { // Используйте tx как объект БД пока вы в транзакции tx := db.Begin() deferfunc() { if r := recover(); r != nil { tx.Rollback() } }()