From 697f201d60c8694d99c178407082881c26127586 Mon Sep 17 00:00:00 2001 From: Kharec Date: Fri, 21 Nov 2025 16:21:04 +0100 Subject: [PATCH] feat: use database transactions to ensure atomicity --- cmd/goyco/commands/seed.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/cmd/goyco/commands/seed.go b/cmd/goyco/commands/seed.go index 44df0c4..43b0c65 100644 --- a/cmd/goyco/commands/seed.go +++ b/cmd/goyco/commands/seed.go @@ -57,10 +57,15 @@ func HandleSeedCommand(cfg *config.Config, name string, args []string) error { } return withDatabase(cfg, func(db *gorm.DB) error { - userRepo := repositories.NewUserRepository(db) - postRepo := repositories.NewPostRepository(db) - voteRepo := repositories.NewVoteRepository(db) - return runSeedCommand(userRepo, postRepo, voteRepo, fs.Args()) + return db.Transaction(func(tx *gorm.DB) error { + userRepo := repositories.NewUserRepository(db).WithTx(tx) + postRepo := repositories.NewPostRepository(db).WithTx(tx) + voteRepo := repositories.NewVoteRepository(db).WithTx(tx) + if err := runSeedCommand(userRepo, postRepo, voteRepo, fs.Args()); err != nil { + return err + } + return nil + }) }) }