Jelajahi Sumber

Merge pull request #188 from Calcium-Ion/fix/many-model-error

fix: 修复渠道一次性添加很多model失败
Calcium-Ion 1 tahun lalu
induk
melakukan
97e0aae0a7
1 mengubah file dengan 11 tambahan dan 1 penghapusan
  1. 11 1
      model/ability.go

+ 11 - 1
model/ability.go

@@ -3,6 +3,7 @@ package model
 import (
 	"errors"
 	"fmt"
+	"github.com/samber/lo"
 	"gorm.io/gorm"
 	"one-api/common"
 	"strings"
@@ -134,7 +135,16 @@ func (channel *Channel) AddAbilities() error {
 			abilities = append(abilities, ability)
 		}
 	}
-	return DB.Create(&abilities).Error
+	if len(abilities) == 0 {
+		return nil
+	}
+	for _, chunk := range lo.Chunk(abilities, 50) {
+		err := DB.Create(&chunk).Error
+		if err != nil {
+			return err
+		}
+	}
+	return nil
 }
 
 func (channel *Channel) DeleteAbilities() error {