mattermost-community-enterp.../vendor/github.com/mattermost/morph/models/plan.go

36 lines
845 B
Go

package models
import "errors"
const CurrentPlanVersion = 1
var ErrInvalidPlanVersion = errors.New("invalid plan version")
type Plan struct {
// Version is the version of the plan.
Version int
// Auto is the mode of the plan. If true, the plan will rollback automatically in case of an error.
Auto bool
// Migrations is the list of migrations to be applied.
Migrations []*Migration
// RevertMigrations is the list of migrations to be applied in case of an error.
RevertMigrations []*Migration
}
func NewPlan(migrations, rollback []*Migration, auto bool) *Plan {
return &Plan{
Version: CurrentPlanVersion,
Migrations: migrations,
RevertMigrations: rollback,
Auto: auto,
}
}
func (p *Plan) Validate() error {
if p.Version != CurrentPlanVersion {
return ErrInvalidPlanVersion
}
return nil
}