This package provides simple migration capabilities for any backend.
The key type in this package is Module which allows mapping version strings to Migration interfaces. For example:
import "github.com/annybs/migres"
type MyBackend struct{}
func (mb *MyBackend) Module() migres.Module {
return migres.Module{
"1.0.0": migres.Func(mb.upgradeV1, mb.downgradeV1),
"2.0.0": migres.Func(mb.upgradeV2, mb.downgradeV2),
}
}Call Module.Upgrade(from, to) or Module.Downgrade(from, to) in order to execute migrations. The module ensures migrations are all run in the correct order.
See LICENSE.md