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