diff --git a/internal/services/init_service.go b/internal/services/init_service.go index 51ed0e9..c932c9d 100644 --- a/internal/services/init_service.go +++ b/internal/services/init_service.go @@ -30,9 +30,6 @@ func (s *InitService) Initialize() *UserService { // 创建管理员账号 s.initializeAdmin(userService) - // 初始化语言环境 - s.initializeLanguages() - return userService } diff --git a/internal/services/mise_service.go b/internal/services/mise_service.go index 5b8bf31..463fe55 100644 --- a/internal/services/mise_service.go +++ b/internal/services/mise_service.go @@ -46,6 +46,19 @@ func (s *MiseService) List() ([]MiseLanguage, error) { return nil, err } + // 如果数据库为空,尝试进行一次自动同步(延迟加载) + if len(models) == 0 { + logger.Info("[Mise] 数据库中没有语言记录,正在进行首次同步...") + if err := s.Sync(); err == nil { + // 同步成功后重新查询 + if err := db.Order("installed_at DESC, plugin ASC").Find(&models).Error; err != nil { + return nil, err + } + } else { + logger.Warnf("[Mise] 首次自动同步失败: %v", err) + } + } + result := make([]MiseLanguage, 0, len(models)) for _, m := range models { lang := MiseLanguage{