gopkg.in/yuukihogo/migrate.v3@v3.0.0/cli/commands.go (about)

     1  package main
     2  
     3  import (
     4  	"github.com/mattes/migrate"
     5  	_ "github.com/mattes/migrate/database/stub" // TODO remove again
     6  	_ "github.com/mattes/migrate/source/file"
     7  )
     8  
     9  func gotoCmd(m *migrate.Migrate, v uint) {
    10  	if err := m.Migrate(v); err != nil {
    11  		if err != migrate.ErrNoChange {
    12  			log.fatalErr(err)
    13  		} else {
    14  			log.Println(err)
    15  		}
    16  	}
    17  }
    18  
    19  func upCmd(m *migrate.Migrate, limit int) {
    20  	if limit >= 0 {
    21  		if err := m.Steps(limit); err != nil {
    22  			if err != migrate.ErrNoChange {
    23  				log.fatalErr(err)
    24  			} else {
    25  				log.Println(err)
    26  			}
    27  		}
    28  	} else {
    29  		if err := m.Up(); err != nil {
    30  			if err != migrate.ErrNoChange {
    31  				log.fatalErr(err)
    32  			} else {
    33  				log.Println(err)
    34  			}
    35  		}
    36  	}
    37  }
    38  
    39  func downCmd(m *migrate.Migrate, limit int) {
    40  	if limit >= 0 {
    41  		if err := m.Steps(-limit); err != nil {
    42  			if err != migrate.ErrNoChange {
    43  				log.fatalErr(err)
    44  			} else {
    45  				log.Println(err)
    46  			}
    47  		}
    48  	} else {
    49  		if err := m.Down(); err != nil {
    50  			if err != migrate.ErrNoChange {
    51  				log.fatalErr(err)
    52  			} else {
    53  				log.Println(err)
    54  			}
    55  		}
    56  	}
    57  }
    58  
    59  func dropCmd(m *migrate.Migrate) {
    60  	if err := m.Drop(); err != nil {
    61  		log.fatalErr(err)
    62  	}
    63  }
    64  
    65  func forceCmd(m *migrate.Migrate, v int) {
    66  	if err := m.Force(v); err != nil {
    67  		log.fatalErr(err)
    68  	}
    69  }
    70  
    71  func versionCmd(m *migrate.Migrate) {
    72  	v, dirty, err := m.Version()
    73  	if err != nil {
    74  		log.fatalErr(err)
    75  	}
    76  	if dirty {
    77  		log.Printf("%v (dirty)\n", v)
    78  	} else {
    79  		log.Println(v)
    80  	}
    81  }