Skip to content
This repository was archived by the owner on May 14, 2026. It is now read-only.

Commit ce7aa75

Browse files
committed
Rollback transaction
1 parent c8da389 commit ce7aa75

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

driver/postgres/driver.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,15 +98,27 @@ func (db *postgres) ApplyMigrations(ctx context.Context, files []file.File, up b
9898

9999
for _, file := range files {
100100
if _, err := tx.ExecContext(ctx, file.SQL); err != nil {
101+
if rollbackErr := tx.Rollback(); rollbackErr != nil {
102+
return errors.Annotate(err, "rolling back transaction failed")
103+
}
104+
101105
return errors.Annotate(err, "executing migration failed")
102106
}
103107

104108
if _, err := tx.ExecContext(ctx, applyMigrationSQL[up], file.Version); err != nil {
109+
if rollbackErr := tx.Rollback(); rollbackErr != nil {
110+
return errors.Annotate(err, "rolling back transaction failed")
111+
}
112+
105113
return errors.Annotate(err, "executing migration failed")
106114
}
107115
}
108116

109117
if err := tx.Commit(); err != nil {
118+
if rollbackErr := tx.Rollback(); rollbackErr != nil {
119+
return errors.Annotate(err, "rolling back transaction failed")
120+
}
121+
110122
return errors.Annotate(err, "committing migrations failed")
111123
}
112124

0 commit comments

Comments
 (0)