From d6e6e55142d6cb369d838357a0700dd1becd50a8 Mon Sep 17 00:00:00 2001 From: Vladimir Mihailenco Date: Fri, 25 Mar 2022 15:50:00 +0200 Subject: [PATCH] fix: change rollback to always record migrations --- chmigrate/migrator.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/chmigrate/migrator.go b/chmigrate/migrator.go index af75620..f2e9c7d 100644 --- a/chmigrate/migrator.go +++ b/chmigrate/migrator.go @@ -186,15 +186,16 @@ func (m *Migrator) Rollback(ctx context.Context, opts ...MigrationOption) (*Migr for i := len(lastGroup.Migrations) - 1; i >= 0; i-- { migration := &lastGroup.Migrations[i] + // Always mark migration as unapplied to match migrate behavior. + if err := m.MarkUnapplied(ctx, migration); err != nil { + return nil, err + } + if !cfg.nop && migration.Down != nil { if err := migration.Down(ctx, m.db); err != nil { return nil, err } } - - if err := m.MarkUnapplied(ctx, migration); err != nil { - return nil, err - } } return lastGroup, nil