mirror of
https://github.com/goharbor/harbor
synced 2025-04-21 22:28:14 +00:00
Improve the migrate process
In order to separate the migrate process from core process, add parameter -mode for main function, it can be normal, migrate, skip_migrate. Signed-off-by: stonezdj <stonezdj@gmail.com>
This commit is contained in:
parent
0b089a16be
commit
478d21687b
@ -17,6 +17,7 @@ package main
|
||||
import (
|
||||
"context"
|
||||
"encoding/gob"
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/url"
|
||||
"os"
|
||||
@ -114,6 +115,9 @@ func gracefulShutdown(closing, done chan struct{}, shutdowns ...func()) {
|
||||
}
|
||||
|
||||
func main() {
|
||||
runMode := flag.String("mode", "normal", "The harbor-core container run mode, it could be normal, migrate or skip-migrate, default is normal")
|
||||
flag.Parse()
|
||||
|
||||
beego.BConfig.WebConfig.Session.SessionOn = true
|
||||
beego.BConfig.WebConfig.Session.SessionName = config.SessionCookieName
|
||||
|
||||
@ -202,9 +206,22 @@ func main() {
|
||||
if err := dao.InitDatabase(database); err != nil {
|
||||
log.Fatalf("failed to initialize database: %v", err)
|
||||
}
|
||||
if err = migration.Migrate(database); err != nil {
|
||||
log.Fatalf("failed to migrate: %v", err)
|
||||
if strings.EqualFold(*runMode, "migrate") {
|
||||
// Used by Harbor helm preinstall, preupgrade hook container
|
||||
if err = migration.Migrate(database); err != nil {
|
||||
log.Fatalf("failed to migrate the database, error: %v", err)
|
||||
}
|
||||
log.Info("the database migrate success")
|
||||
os.Exit(0)
|
||||
} else if strings.EqualFold(*runMode, "skip-migrate") {
|
||||
log.Info("skip the database migrate")
|
||||
} else {
|
||||
// Run migrator as normal
|
||||
if err = migration.Migrate(database); err != nil {
|
||||
log.Fatalf("failed to migrate the database, error: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
ctx = orm.Clone(ctx)
|
||||
if err := config.Load(ctx); err != nil {
|
||||
log.Fatalf("failed to load config: %v", err)
|
||||
|
Loading…
x
Reference in New Issue
Block a user