code.gitea.io/gitea@v1.19.3/modules/doctor/dbversion.go (about)

     1  // Copyright 2020 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package doctor
     5  
     6  import (
     7  	"context"
     8  
     9  	"code.gitea.io/gitea/models/db"
    10  	"code.gitea.io/gitea/models/migrations"
    11  	"code.gitea.io/gitea/modules/log"
    12  )
    13  
    14  func checkDBVersion(ctx context.Context, logger log.Logger, autofix bool) error {
    15  	logger.Info("Expected database version: %d", migrations.ExpectedVersion())
    16  	if err := db.InitEngineWithMigration(ctx, migrations.EnsureUpToDate); err != nil {
    17  		if !autofix {
    18  			logger.Critical("Error: %v during ensure up to date", err)
    19  			return err
    20  		}
    21  		logger.Warn("Got Error: %v during ensure up to date", err)
    22  		logger.Warn("Attempting to migrate to the latest DB version to fix this.")
    23  
    24  		err = db.InitEngineWithMigration(ctx, migrations.Migrate)
    25  		if err != nil {
    26  			logger.Critical("Error: %v during migration", err)
    27  		}
    28  		return err
    29  	}
    30  	return nil
    31  }
    32  
    33  func init() {
    34  	Register(&Check{
    35  		Title:         "Check Database Version",
    36  		Name:          "check-db-version",
    37  		IsDefault:     true,
    38  		Run:           checkDBVersion,
    39  		AbortIfFailed: false,
    40  		Priority:      2,
    41  	})
    42  }