log migrations as the run
This commit is contained in:
@@ -10,6 +10,25 @@ import (
|
|||||||
"gopkg.in/gormigrate.v1"
|
"gopkg.in/gormigrate.v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func addMigrationLog(migrs ...gormigrate.Migration) []*gormigrate.Migration {
|
||||||
|
log := func(i int, mig gormigrate.MigrateFunc, name string) gormigrate.MigrateFunc {
|
||||||
|
return func(tx *gorm.DB) error {
|
||||||
|
// print that we're on the ith out of n migrations
|
||||||
|
defer log.Printf("migration (%d/%d) '%s' finished", i+1, len(migrs), name)
|
||||||
|
return mig(tx)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ret := make([]*gormigrate.Migration, 0, len(migrs))
|
||||||
|
for i, mig := range migrs {
|
||||||
|
ret = append(ret, &gormigrate.Migration{
|
||||||
|
ID: mig.ID,
|
||||||
|
Rollback: mig.Rollback,
|
||||||
|
Migrate: log(i, mig.Migrate, mig.ID),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
dbMaxOpenConns = 1
|
dbMaxOpenConns = 1
|
||||||
dbOptions = url.Values{
|
dbOptions = url.Values{
|
||||||
@@ -37,14 +56,15 @@ func New(path string) (*DB, error) {
|
|||||||
}
|
}
|
||||||
db.SetLogger(log.New(os.Stdout, "gorm ", 0))
|
db.SetLogger(log.New(os.Stdout, "gorm ", 0))
|
||||||
db.DB().SetMaxOpenConns(dbMaxOpenConns)
|
db.DB().SetMaxOpenConns(dbMaxOpenConns)
|
||||||
migr := gormigrate.New(db, gormigrate.DefaultOptions, []*gormigrate.Migration{
|
migr := gormigrate.New(db, gormigrate.DefaultOptions, addMigrationLog(
|
||||||
&migrationInitSchema,
|
migrationInitSchema,
|
||||||
&migrationCreateInitUser,
|
migrationCreateInitUser,
|
||||||
&migrationMergePlaylist,
|
migrationMergePlaylist,
|
||||||
&migrationCreateTranscode,
|
migrationCreateTranscode,
|
||||||
&migrationAddGenre,
|
migrationAddGenre,
|
||||||
&migrationUpdateTranscodePrefIDX,
|
migrationUpdateTranscodePrefIDX,
|
||||||
})
|
migrationAddAlbumIDX,
|
||||||
|
))
|
||||||
if err = migr.Migrate(); err != nil {
|
if err = migr.Migrate(); err != nil {
|
||||||
return nil, errors.Wrap(err, "migrating to latest version")
|
return nil, errors.Wrap(err, "migrating to latest version")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user