mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-31 06:21:11 +00:00 
			
		
		
		
	Gitea will migrate the database model version automatically, but it should be able to be disabled and keep Gitea shutdown if the version is not matched.
		
			
				
	
	
		
			42 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2020 The Gitea Authors. All rights reserved.
 | |
| // SPDX-License-Identifier: MIT
 | |
| 
 | |
| package doctor
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 
 | |
| 	"code.gitea.io/gitea/models/db"
 | |
| 	"code.gitea.io/gitea/models/migrations"
 | |
| 	"code.gitea.io/gitea/modules/log"
 | |
| )
 | |
| 
 | |
| func checkDBVersion(ctx context.Context, logger log.Logger, autofix bool) error {
 | |
| 	logger.Info("Expected database version: %d", migrations.ExpectedVersion())
 | |
| 	if err := db.InitEngineWithMigration(ctx, migrations.EnsureUpToDate); err != nil {
 | |
| 		if !autofix {
 | |
| 			logger.Critical("Error: %v during ensure up to date", err)
 | |
| 			return err
 | |
| 		}
 | |
| 		logger.Warn("Got Error: %v during ensure up to date", err)
 | |
| 		logger.Warn("Attempting to migrate to the latest DB version to fix this.")
 | |
| 
 | |
| 		err = db.InitEngineWithMigration(ctx, migrations.Migrate)
 | |
| 		if err != nil {
 | |
| 			logger.Critical("Error: %v during migration", err)
 | |
| 		}
 | |
| 		return err
 | |
| 	}
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| func init() {
 | |
| 	Register(&Check{
 | |
| 		Title:         "Check Database Version",
 | |
| 		Name:          "check-db-version",
 | |
| 		IsDefault:     true,
 | |
| 		Run:           checkDBVersion,
 | |
| 		AbortIfFailed: false,
 | |
| 		Priority:      2,
 | |
| 	})
 | |
| }
 |