2018-10-31 05:14:42 +02:00
// Copyright 2018 The Gitea Authors. All rights reserved.
2022-11-27 13:20:29 -05:00
// SPDX-License-Identifier: MIT
2018-10-31 05:14:42 +02:00
package cmd
import (
2019-12-15 09:51:28 +00:00
"context"
2021-09-19 19:49:59 +08:00
"code.gitea.io/gitea/models/db"
2018-10-31 05:14:42 +02:00
"code.gitea.io/gitea/models/migrations"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
2023-07-21 17:28:19 +08:00
"github.com/urfave/cli/v2"
2018-10-31 05:14:42 +02:00
)
// CmdMigrate represents the available migrate sub-command.
2023-07-21 17:28:19 +08:00
var CmdMigrate = & cli . Command {
2018-10-31 05:14:42 +02:00
Name : "migrate" ,
Usage : "Migrate the database" ,
2024-12-07 16:57:49 +01:00
Description : "This is a command for migrating the database, so that you can run 'forgejo admin user create' before starting the server." ,
2018-10-31 05:14:42 +02:00
Action : runMigrate ,
}
func runMigrate ( ctx * cli . Context ) error {
2021-11-07 11:11:27 +08:00
stdCtx , cancel := installSignals ( )
defer cancel ( )
if err := initDB ( stdCtx ) ; err != nil {
2018-10-31 05:14:42 +02:00
return err
}
2021-06-27 01:56:58 +01:00
log . Info ( "AppPath: %s" , setting . AppPath )
log . Info ( "AppWorkPath: %s" , setting . AppWorkPath )
log . Info ( "Custom path: %s" , setting . CustomPath )
2023-02-20 00:12:01 +08:00
log . Info ( "Log path: %s" , setting . Log . RootPath )
2021-09-14 02:24:57 +01:00
log . Info ( "Configuration file: %s" , setting . CustomConf )
2018-10-31 05:14:42 +02:00
2021-10-30 22:32:11 +08:00
if err := db . InitEngineWithMigration ( context . Background ( ) , migrations . Migrate ) ; err != nil {
2019-04-02 08:48:31 +01:00
log . Fatal ( "Failed to initialize ORM engine: %v" , err )
2018-10-31 05:14:42 +02:00
return err
}
return nil
}