35 lines
908 B
Go
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)
|
|
}
|
|
}
|
|
}
|