mirror of
https://github.com/status-im/migrate.git
synced 2025-02-23 08:18:07 +00:00
allow to force NilVersion
This commit is contained in:
parent
55f54251eb
commit
eb02bc77fb
@ -42,7 +42,7 @@ func dropCmd(m *migrate.Migrate) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func forceCmd(m *migrate.Migrate, v uint) {
|
func forceCmd(m *migrate.Migrate, v int) {
|
||||||
if err := m.Force(v); err != nil {
|
if err := m.Force(v); err != nil {
|
||||||
log.fatalErr(err)
|
log.fatalErr(err)
|
||||||
}
|
}
|
||||||
|
@ -182,12 +182,16 @@ Commands:
|
|||||||
log.fatal("error: please specify version argument V")
|
log.fatal("error: please specify version argument V")
|
||||||
}
|
}
|
||||||
|
|
||||||
v, err := strconv.ParseUint(flag.Arg(1), 10, 64)
|
v, err := strconv.ParseInt(flag.Arg(1), 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.fatal("error: can't read version argument V")
|
log.fatal("error: can't read version argument V")
|
||||||
}
|
}
|
||||||
|
|
||||||
forceCmd(migrater, uint(v))
|
if v < -1 {
|
||||||
|
log.fatal("error: argument V must be >= -1")
|
||||||
|
}
|
||||||
|
|
||||||
|
forceCmd(migrater, int(v))
|
||||||
|
|
||||||
if log.verbose {
|
if log.verbose {
|
||||||
log.Println("Finished after", time.Now().Sub(startTime))
|
log.Println("Finished after", time.Now().Sub(startTime))
|
||||||
|
@ -63,6 +63,7 @@ type Driver interface {
|
|||||||
|
|
||||||
// SetVersion saves version and dirty state.
|
// SetVersion saves version and dirty state.
|
||||||
// Migrate will call this function before and after each call to Run.
|
// Migrate will call this function before and after each call to Run.
|
||||||
|
// version must be >= -1. -1 means NilVersion.
|
||||||
SetVersion(version int, dirty bool) error
|
SetVersion(version int, dirty bool) error
|
||||||
|
|
||||||
// Version returns the currently active version and if the database is dirty.
|
// Version returns the currently active version and if the database is dirty.
|
||||||
|
@ -355,12 +355,16 @@ func (m *Migrate) Run(migration ...*Migration) error {
|
|||||||
// Force sets a migration version.
|
// Force sets a migration version.
|
||||||
// It does not check any currently active version in database.
|
// It does not check any currently active version in database.
|
||||||
// It does not check if the database is dirty.
|
// It does not check if the database is dirty.
|
||||||
func (m *Migrate) Force(version uint) error {
|
func (m *Migrate) Force(version int) error {
|
||||||
|
if version < -1 {
|
||||||
|
panic("version must be >= -1")
|
||||||
|
}
|
||||||
|
|
||||||
if err := m.lock(); err != nil {
|
if err := m.lock(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := m.databaseDrv.SetVersion(int(version), false); err != nil {
|
if err := m.databaseDrv.SetVersion(version, false); err != nil {
|
||||||
return m.unlockErr(err)
|
return m.unlockErr(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user