From e7ee10deb18f7db6dc8980b2b092a9eaf3024e76 Mon Sep 17 00:00:00 2001 From: wispem-wantex Date: Sat, 12 Jul 2025 10:54:57 -0700 Subject: [PATCH] Execute migrations in a transaction --- pkg/db/connect.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkg/db/connect.go b/pkg/db/connect.go index 60f9515..290853a 100644 --- a/pkg/db/connect.go +++ b/pkg/db/connect.go @@ -100,8 +100,16 @@ func UpgradeFromXToY(db *sqlx.DB, x uint, y uint) { fmt.Println((*migrations)[i]) fmt.Print(ColorReset) - db.MustExec((*migrations)[i]) - db.MustExec("update db_version set version = ?", i+1) + // Execute the migration in a transaction + tx, err := db.Beginx() + if err != nil { + panic(err) + } + tx.MustExec((*migrations)[i]) + tx.MustExec("update db_version set version = ?", i+1) + if err := tx.Commit(); err != nil { + panic(err) + } fmt.Print(ColorYellow) fmt.Printf("Now at database schema version %d.\n", i+1)