github.com/CloudCom/goose@v0.0.0-20151110184009-e03c3249c21b/cmd/goose/cmd_redo.go (about)

     1  package main
     2  
     3  import (
     4  	"log"
     5  
     6  	"github.com/CloudCom/goose/lib/goose"
     7  )
     8  
     9  var redoCmd = &Command{
    10  	Name:    "redo",
    11  	Usage:   "",
    12  	Summary: "Re-run the latest migration",
    13  	Help:    `redo extended help here...`,
    14  	Run:     redoRun,
    15  }
    16  
    17  func redoRun(cmd *Command, args ...string) {
    18  	conf, err := dbConfFromFlags()
    19  	if err != nil {
    20  		log.Fatal("Error loading config file:", err)
    21  	}
    22  
    23  	current, err := goose.GetDBVersion(conf)
    24  	if err != nil {
    25  		log.Fatal(err)
    26  	}
    27  
    28  	previous, err := goose.GetPreviousDBVersion(conf.MigrationsDir, current)
    29  	if err != nil {
    30  		log.Fatal(err)
    31  	}
    32  
    33  	if err := goose.RunMigrations(conf, conf.MigrationsDir, previous); err != nil {
    34  		log.Fatal(err)
    35  	}
    36  
    37  	if err := goose.RunMigrations(conf, conf.MigrationsDir, current); err != nil {
    38  		log.Fatal(err)
    39  	}
    40  }