package migrate import ( "embed" "time" "github.com/perfect-panel/ppanel-server/pkg/logger" "github.com/perfect-panel/ppanel-server/internal/model/system" "github.com/perfect-panel/ppanel-server/internal/svc" ) //go:embed database/*.sql var sqlFiles embed.FS func Migrate(ctx *svc.ServiceContext) { logger.Debug("SQL Migrate started") startTime := time.Now() defer func() { logger.WithDuration(time.Since(startTime)).Debug("PPanel SQL Migrate completed") }() db := ctx.DB if !db.Migrator().HasTable(&system.System{}) { if err := InitPPanelSQL(db); err != nil { logger.Error("SQL Migrate failed", logger.Field("err", err.Error())) panic(err) } // create admin user if err := CreateAdminUser(ctx.Config.Administrator.Email, ctx.Config.Administrator.Password, db); err != nil { logger.Error("Create admin User failed", logger.Field("err", err.Error())) panic(err) } } }