Skip to content

Commit

Permalink
Better error handling when running migrations
Browse files Browse the repository at this point in the history
  • Loading branch information
ymijorski authored and spebern committed Jun 6, 2018
1 parent ac8bcc4 commit 98b09f1
Showing 1 changed file with 17 additions and 2 deletions.
19 changes: 17 additions & 2 deletions src/modelx/modelx.go
Expand Up @@ -177,8 +177,23 @@ func initializeDatabase() (*sqlx.DB, error) {
Logger.Fatal("failed to initialise migration instance", zap.Error(err))
}

err = m.Up()
if err != nil {
version, dirty, versionErr := m.Version()

if versionErr != nil && versionErr != migrate.ErrNilVersion {
Logger.Fatal("failed to get migration version", zap.Error(err))
}

if dirty {
Logger.Warn("Forcing migration", zap.Uint("version", version))
err = m.Force(int(version))

if err != nil {
Logger.Fatal("failed to force execute migration", zap.Error(err))
}
}

migrateErr := m.Up()
if migrateErr != nil && migrateErr != migrate.ErrNoChange {
Logger.Fatal("failed to execute migrations", zap.Error(err))
}

Expand Down

0 comments on commit 98b09f1

Please sign in to comment.