From 0d7dc27d1f18733b57938075a6f9203c79580795 Mon Sep 17 00:00:00 2001 From: Martin Desrumaux Date: Tue, 31 May 2022 17:10:37 +0200 Subject: [PATCH] feat: add RollbackAll to roll back all migrations --- pkg/dbmate/db.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pkg/dbmate/db.go b/pkg/dbmate/db.go index 5c1c3a28..457e1225 100644 --- a/pkg/dbmate/db.go +++ b/pkg/dbmate/db.go @@ -542,6 +542,21 @@ func (db *DB) Rollback() error { return nil } +// RollbackAll rolls back all migrations +func (db *DB) RollbackAll() error { + for { + err := db.Rollback() + switch { + case err == nil: + continue + case errors.Is(err, ErrNoRollback): + return nil + case err != nil: + return err + } + } +} + // Status shows the status of all migrations func (db *DB) Status(quiet bool) (int, error) { drv, err := db.GetDriver()