Skip to content

Commit

Permalink
fix insert version txn
Browse files Browse the repository at this point in the history
  • Loading branch information
c9s committed Jan 19, 2024
1 parent c32788b commit 212c871
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 3 deletions.
2 changes: 2 additions & 0 deletions db.go
Original file line number Diff line number Diff line change
Expand Up @@ -392,6 +392,8 @@ func sliceContains(a []string, b string) bool {
}

func rollbackAndLogErr(originErr error, txn *sql.Tx, msg string, args ...any) error {
log.WithError(originErr).Errorf("unable to execute SQL, rolling back...")

if err := txn.Rollback(); err != nil {
log.WithError(err).Errorf("unable to rollback transaction")
if len(msg) > 0 {
Expand Down
6 changes: 3 additions & 3 deletions migration.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ func withTransaction(ctx context.Context, db *sql.DB, callbacks ...TransactionHa

for _, cb := range callbacks {
if err2 := cb(ctx, tx); err2 != nil {
return rollbackAndLogErr(err, tx, "")
return rollbackAndLogErr(err2, tx, "")
}
}

Expand All @@ -102,7 +102,7 @@ func (m *Migration) runUp(ctx context.Context, db *DB) error {
return executeStatements(ctx, exec, m.UpStatements)
})
finalizer := func(ctx context.Context, exec SQLExecutor) error {
return db.insertVersion(ctx, db.DB, m.Package, m.Source, m.Version, true)
return db.insertVersion(ctx, exec, m.Package, m.Source, m.Version, true)
}

var executor = m.getStmtExecutor()
Expand All @@ -114,7 +114,7 @@ func (m *Migration) runDown(ctx context.Context, db *DB) error {
return executeStatements(ctx, exec, m.DownStatements)
})
finalizer := func(ctx context.Context, exec SQLExecutor) error {
return db.deleteVersion(ctx, db.DB, m.Package, m.Version)
return db.deleteVersion(ctx, exec, m.Package, m.Version)
}

var executor = m.getStmtExecutor()
Expand Down
1 change: 1 addition & 0 deletions parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ func (p *MigrationParser) Parse(r io.Reader) (*MigrationScriptChunk, error) {
}

chunk.Package = packageName
continue
}

switch cmd {
Expand Down
2 changes: 2 additions & 0 deletions up.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import (

func UpBySteps(ctx context.Context, db *DB, m *Migration, steps int, callbacks ...func(m *Migration)) error {
for ; steps > 0 && m != nil; m = m.Next {
descMigration("upgrading", m)

if err := m.Up(ctx, db); err != nil {
return err
}
Expand Down

0 comments on commit 212c871

Please sign in to comment.