From c42a732ef74ace30acee2a9d2e4ab608fa6fb005 Mon Sep 17 00:00:00 2001 From: Konstantin Sykulev Date: Tue, 21 Oct 2025 11:21:33 -0500 Subject: [PATCH] Unbatching checksum migration (#34586) **Related issue:** https://github.com/fleetdm/fleet/issues/34559 PR for 4.75.1: https://github.com/fleetdm/fleet/pull/34485 needs to be added in main to be consistent. --- ...505_AddNameToSoftwareCheckumCalculation.go | 33 +++---------------- 1 file changed, 4 insertions(+), 29 deletions(-) diff --git a/server/datastore/mysql/migrations/tables/20251015103505_AddNameToSoftwareCheckumCalculation.go b/server/datastore/mysql/migrations/tables/20251015103505_AddNameToSoftwareCheckumCalculation.go index f0dbe9e71d..e426567c3d 100644 --- a/server/datastore/mysql/migrations/tables/20251015103505_AddNameToSoftwareCheckumCalculation.go +++ b/server/datastore/mysql/migrations/tables/20251015103505_AddNameToSoftwareCheckumCalculation.go @@ -10,30 +10,7 @@ func init() { } func Up_20251015103505(tx *sql.Tx) error { - var minID, maxID sql.NullInt64 - err := tx.QueryRow(` - SELECT MIN(id), MAX(id) - FROM software - WHERE source = 'apps' - AND bundle_identifier IS NOT NULL - AND bundle_identifier != '' - `).Scan(&minID, &maxID) - if err != nil { - return fmt.Errorf("getting ID range: %w", err) - } - - if !minID.Valid || !maxID.Valid { - return nil - } - - const batchSize = 10000 - for startID := minID.Int64; startID <= maxID.Int64; startID += batchSize { - endID := startID + batchSize - 1 - if endID > maxID.Int64 { - endID = maxID.Int64 - } - - softwareStmt := ` + softwareStmt := ` UPDATE software SET checksum = UNHEX( MD5( @@ -54,12 +31,10 @@ func Up_20251015103505(tx *sql.Tx) error { WHERE source = 'apps' AND bundle_identifier IS NOT NULL AND bundle_identifier != '' - AND id >= ? AND id <= ? ` - _, err = tx.Exec(softwareStmt, startID, endID) - if err != nil { - return fmt.Errorf("updating software checksums (batch %d-%d): %w", startID, endID, err) - } + _, err := tx.Exec(softwareStmt) + if err != nil { + return fmt.Errorf("updating software checksums %w", err) } return nil