gitea源码

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