diff --git a/database/pgsql/migrations/00006_add_version_format.go b/database/pgsql/migrations/00006_add_version_format.go index bf1c55c2..1b9aaf85 100644 --- a/database/pgsql/migrations/00006_add_version_format.go +++ b/database/pgsql/migrations/00006_add_version_format.go @@ -14,57 +14,16 @@ package migrations -import ( - "database/sql" - "strings" - - "github.com/remind101/migrate" -) +import "github.com/remind101/migrate" func init() { RegisterMigration(migrate.Migration{ ID: 6, - Up: func(tx *sql.Tx) error { - _, err := tx.Exec(`ALTER TABLE Namespace ADD COLUMN version_format varchar(128);`) - if err != nil { - return err - } - - rows, err := tx.Query(`SELECT name FROM Namespace FOR UPDATE;`) - if err != nil { - return err - } - - for rows.Next() { - var nsName string - err = rows.Scan(&nsName) - if err != nil { - return err - } - - // Backfill rpm namespaces. - if strings.HasPrefix(nsName, "rhel") || - strings.HasPrefix(nsName, "centos") || - strings.HasPrefix(nsName, "fedora") || - strings.HasPrefix(nsName, "amzn") || - strings.HasPrefix(nsName, "scientific") || - strings.HasPrefix(nsName, "ol") || - strings.HasPrefix(nsName, "oracle") { - _, err := tx.Exec(`UPDATE Namespace SET version_format = 'rpm' WHERE name = ?;`, nsName) - if err != nil { - return err - } - } else { - // Fallback to dpkg. - _, err := tx.Exec(`UPDATE Namespace SET version_format = 'dpkg' WHERE name = ?;`, nsName) - if err != nil { - return err - } - } - } - - return nil - }, + Up: migrate.Queries([]string{ + `ALTER TABLE Namespace ADD COLUMN version_format varchar(128);`, + `UPDATE Namespace SET version_format = 'rpm' WHERE name LIKE 'rhel%' OR name LIKE 'centos%' OR name LIKE 'fedora%' OR name LIKE 'amzn%' OR name LIKE 'scientific%' OR name LIKE 'ol%' OR name LIKE 'oracle%';`, + `UPDATE Namespace SET version_format = 'dpkg' WHERE version_format != 'rpm';`, + }), Down: migrate.Queries([]string{ `ALTER TABLE Namespace DROP COLUMN version_format;`, }),