| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- // Copyright 2021 The Gitea Authors. All rights reserved.
- // SPDX-License-Identifier: MIT
-
- package install
-
- import (
- "context"
-
- "code.gitea.io/gitea/models/db"
- "code.gitea.io/gitea/modules/setting"
- )
-
- // CheckDatabaseConnection checks the database connection
- func CheckDatabaseConnection(ctx context.Context) error {
- _, err := db.GetEngine(ctx).Exec("SELECT 1")
- return err
- }
-
- // GetMigrationVersion gets the database migration version
- func GetMigrationVersion(ctx context.Context) (int64, error) {
- var installedDbVersion int64
- x := db.GetEngine(ctx)
- exist, err := x.IsTableExist("version")
- if err != nil {
- return 0, err
- }
- if !exist {
- return 0, nil
- }
- _, err = x.Table("version").Cols("version").Get(&installedDbVersion)
- if err != nil {
- return 0, err
- }
- return installedDbVersion, nil
- }
-
- // HasPostInstallationUsers checks whether there are users after installation
- func HasPostInstallationUsers(ctx context.Context) (bool, error) {
- x := db.GetEngine(ctx)
- exist, err := x.IsTableExist("user")
- if err != nil {
- return false, err
- }
- if !exist {
- return false, nil
- }
-
- // if there are 2 or more users in database, we consider there are users created after installation
- threshold := 2
- if !setting.IsProd {
- // to debug easily, with non-prod RUN_MODE, we only check the count to 1
- threshold = 1
- }
- res, err := x.Table("user").Cols("id").Limit(threshold).Query()
- if err != nil {
- return false, err
- }
- return len(res) >= threshold, nil
- }
|