package database import "sort" // sortMigrationNames returns a sorted copy of the names slice. func sortMigrationNames(names []string) []string { sorted := make([]string, len(names)) copy(sorted, names) sort.Strings(sorted) return sorted } // buildAppliedSet converts a list of applied migrations to a lookup set. func buildAppliedSet(applied []DataMigration) map[string]bool { set := make(map[string]bool, len(applied)) for _, m := range applied { set[m.Name] = true } return set } // filterPending returns names not present in the applied set. func filterPending(names []string, applied map[string]bool) []string { var pending []string for _, name := range names { if !applied[name] { pending = append(pending, name) } } return pending }