package internal import ( "errors" "sorbet/internal/entities" "sorbet/internal/runtime" "sorbet/internal/services/company" "sorbet/internal/services/config" "sorbet/internal/services/feature" "sorbet/internal/services/resource" "sorbet/internal/services/system" "sorbet/pkg/db" "sorbet/pkg/env" "sorbet/pkg/log" ) func Init() error { err := syncEntities() if err != nil { if !errors.Is(err, db.ErrNoCodeFirst) { return err } if !env.IsEnv("prod") { log.Warn("同步数据表结构需要开启 [DB_CODE_FIRST],在生产模式下请务必关闭。") } } return useServlets() } // 同步数据库结构 func syncEntities() error { return db.Sync( &entities.Company{}, &entities.CompanyDepartment{}, &entities.CompanyEmployee{}, &entities.ConfigGroup{}, &entities.Config{}, &entities.Feature{}, &entities.FeatureCategory{}, &entities.FeatureConfig{}, &entities.FeatureContent{}, &entities.FeatureContentChapter{}, &entities.FeatureContentDetail{}, &entities.ResourceCategory{}, &entities.Resource{}, &entities.SystemLog{}, &entities.SystemMenu{}, &entities.SystemPermission{}, &entities.SystemRole{}, &entities.SystemRolePower{}, &entities.SystemUser{}, ) } func useServlets() error { return runtime.Use( &config.Service{}, &company.Service{}, &resource.Service{}, &feature.Service{}, &system.Service{}, ) }