forked from mirror/gorm
Create a new db in FindInBatches
This commit is contained in:
parent
2ba599e8b7
commit
75720099b5
|
@ -202,7 +202,9 @@ func (db *DB) FindInBatches(dest interface{}, batchSize int, fc func(tx *DB, bat
|
|||
batch++
|
||||
|
||||
if result.Error == nil && result.RowsAffected != 0 {
|
||||
tx.AddError(fc(result, batch))
|
||||
fcTx := result.Session(&Session{NewDB: true})
|
||||
fcTx.RowsAffected = result.RowsAffected
|
||||
tx.AddError(fc(fcTx, batch))
|
||||
} else if result.Error != nil {
|
||||
tx.AddError(result.Error)
|
||||
}
|
||||
|
|
3
gorm.go
3
gorm.go
|
@ -300,7 +300,8 @@ func (db *DB) WithContext(ctx context.Context) *DB {
|
|||
|
||||
// Debug start debug mode
|
||||
func (db *DB) Debug() (tx *DB) {
|
||||
return db.Session(&Session{
|
||||
tx = db.getInstance()
|
||||
return tx.Session(&Session{
|
||||
Logger: db.Logger.LogMode(logger.Info),
|
||||
})
|
||||
}
|
||||
|
|
|
@ -257,7 +257,7 @@ func TestFindInBatches(t *testing.T) {
|
|||
totalBatch int
|
||||
)
|
||||
|
||||
if result := DB.Where("name = ?", users[0].Name).FindInBatches(&results, 2, func(tx *gorm.DB, batch int) error {
|
||||
if result := DB.Table("users as u").Where("name = ?", users[0].Name).FindInBatches(&results, 2, func(tx *gorm.DB, batch int) error {
|
||||
totalBatch += batch
|
||||
|
||||
if tx.RowsAffected != 2 {
|
||||
|
@ -273,7 +273,7 @@ func TestFindInBatches(t *testing.T) {
|
|||
}
|
||||
|
||||
if err := tx.Save(results).Error; err != nil {
|
||||
t.Errorf("failed to save users, got error %v", err)
|
||||
t.Fatalf("failed to save users, got error %v", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
Loading…
Reference in New Issue