wox.core/migration/README.md
Wox uses an application-level migration runner (separate from Gorm AutoMigrate) for data / settings compatibility upgrades.
wox.core/migration/ (same package: migration).init() + migration.Register(...).ID().migration_records (model: database.MigrationRecord).wox.core/migration/mYYYYMMDD_short_name.gotype Migration interface {
ID() string
Description() string
Up(ctx context.Context, tx *gorm.DB) error
}
func init() { Register(&myMigration{}) }
type ConditionalMigration interface {
Migration
IsNeeded(ctx context.Context, db *gorm.DB) (bool, error)
}
type PostCommitMigration interface {
Migration
AfterCommit(ctx context.Context) error
}