package models import ( "bufio" "fmt" "io/fs" "log/slog" "strings" ) import ( "gorm.io/gorm" ) import ( "resource-server/static" ) func initConfigItem() error { sqlFilePath := "config_items_202505221522.sql" file, err := static.GetSqlFile(sqlFilePath) if err != nil { return fmt.Errorf("error opening SQL file: %w", err) } defer func(file fs.File) { err := file.Close() if err != nil { slog.Error("error closing SQL file:", err) } }(file) scanner := bufio.NewScanner(file) err = DB.Transaction(func(tx *gorm.DB) error { for scanner.Scan() { line := strings.TrimSpace(scanner.Text()) result := tx.Exec(line) if result.Error != nil { return fmt.Errorf("error executing INSERT statement: %s\tError: %w", line, result.Error) } } if err := scanner.Err(); err != nil { return fmt.Errorf("error reading SQL file: %w", err) } return nil }) if err != nil { return err } slog.Info("Processed SQL file: %s.\n", sqlFilePath) return nil }