2025-09-27 10:17:16 +08:00

35 lines
908 B
Go

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)
}
}
}