Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DiagnosticStep ¶
DiagnosticStep describes one migration step in the Diagnostics.
type Diagnostics ¶
type Diagnostics struct {
// Message holds a human readable message of the encountered
// error.
Message string
// Wrapped must be set to the underlying error that was encountered
// while preparing or executing migrations.
Wrapped error
// StartOfMigration is set to the version of the database before
// any migrations are applied.
StartOfMigration string
// LastSuccessfulMigration is set to the version of the database
// which has been applied successfully before the error happened.
LastSuccessfulMigration string
// TargetVersion is set to the version of the database that the
// migration run aimed for. That is, it's the last available version
// added to the registry.
TargetVersion string
// ExecutionPlan is a list of migration steps that were planned to
// be executed.
ExecutionPlan []DiagnosticStep
// FailedMigration is the description of the migration that has
// failed.
FailedMigration string
}
Diagnostics holds a detailed error report about a failed migration.
func (*Diagnostics) Error ¶
func (err *Diagnostics) Error() string
Error returns a string representation of the migration error.
func (*Diagnostics) Unwrap ¶
func (err *Diagnostics) Unwrap() error
Unwrap returns the actual error that happened when executing a migration. It implements the interface required by the stdlib errors package to support errors.Is() and errors.As().
type MigrateFunc ¶
type MigrateFunc func(ctx context.Context, from, to *version.Version, dbInterface *database.Interface) error
MigrateFunc is called when a migration should be applied to the database. It receives the current version (from) and the target version (to) of the database and a dedicated interface for interacting with data stored in the DB. A dedicated log.ContextTracer is added to ctx for each migration run.
type Migration ¶
type Migration struct {
// Description provides a short human-readable description of the
// migration.
Description string
// Version should hold the version of the database/subsystem after
// the migration has been applied.
Version string
// MigrateFuc is executed when the migration should be performed.
MigrateFunc MigrateFunc
}
Migration represents a registered data-migration that should be applied to some database. Migrations are stacked on top and executed in order of increasing version number (see Version field).
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
Registry holds a migration stack.
func New ¶
New creates a new migration registry. The key should be the name of the database key that is used to store the version of the last successfully applied migration.