From 571c4dcc8dfca895cf332930393d77123c806723 Mon Sep 17 00:00:00 2001 From: Kenneth Lee Date: Mon, 18 Jul 2022 16:00:54 -0400 Subject: [PATCH] [#163] fixed migrate down cmd --- tools/migrate/runner.go | 10 ++++------ tools/migrate/runner_test.go | 11 ++++++++--- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/tools/migrate/runner.go b/tools/migrate/runner.go index 3e8688c1..b0a9aa6b 100644 --- a/tools/migrate/runner.go +++ b/tools/migrate/runner.go @@ -194,11 +194,9 @@ func (r *Runner) Up() ([]string, error) { // // On success returns list with the reverted migrations file names. func (r *Runner) Down(toRevertCount int) ([]string, error) { - applied := []string{} + reverted := make([]string, 0, toRevertCount) err := r.db.Transactional(func(tx *dbx.Tx) error { - totalReverted := 0 - for i := len(r.migrationsList.Items()) - 1; i >= 0; i-- { m := r.migrationsList.Item(i) @@ -208,7 +206,7 @@ func (r *Runner) Down(toRevertCount int) ([]string, error) { } // revert limit reached - if toRevertCount-totalReverted <= 0 { + if toRevertCount-len(reverted) <= 0 { break } @@ -220,7 +218,7 @@ func (r *Runner) Down(toRevertCount int) ([]string, error) { return fmt.Errorf("Failed to save reverted migration info for %s: %w", m.file, err) } - applied = append(applied, m.file) + reverted = append(reverted, m.file) } return nil @@ -229,7 +227,7 @@ func (r *Runner) Down(toRevertCount int) ([]string, error) { if err != nil { return nil, err } - return applied, nil + return reverted, nil } func (r *Runner) createMigrationsTable() error { diff --git a/tools/migrate/runner_test.go b/tools/migrate/runner_test.go index f23f1de0..74091a5b 100644 --- a/tools/migrate/runner_test.go +++ b/tools/migrate/runner_test.go @@ -104,7 +104,8 @@ func TestRunnerUpAndDown(t *testing.T) { // Down() // --- - if _, err := r.Down(2); err != nil { + // revert one migration + if _, err := r.Down(1); err != nil { t.Fatal(err) } @@ -112,8 +113,12 @@ func TestRunnerUpAndDown(t *testing.T) { t.Fatal("Didn't expect 3_test to be reverted.") } - if !test1DownCalled || !test2DownCalled { - t.Fatalf("Expected 1_test and 2_test to be reverted, got %v and %v", test1DownCalled, test2DownCalled) + if !test2DownCalled { + t.Fatal("Expected 2_test to be reverted.") + } + + if test1DownCalled { + t.Fatal("Didn't expect 1_test to be reverted.") } }