Files
Message-Push-Nest/migrate/migrate.go
T
2026-01-06 16:36:44 +08:00

98 lines
2.2 KiB
Go

package migrate
import (
"errors"
"fmt"
"message-nest/models"
"message-nest/service/settings_service"
"github.com/sirupsen/logrus"
"gorm.io/gorm"
)
// 初始化admin账户
func InitAuthTableData() {
initSection := "init"
initAuthKey := "account"
initAccount := "admin"
initAccountPasswd := "123456"
settingO, err := models.GetSettingByKey(initSection, initAuthKey)
if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
logrus.Error(fmt.Sprintf("查询账号初始化失败!"))
return
}
if settingO.Value == "1" {
// 已经初始化过
return
}
err = models.AddUser(initAccount, initAccountPasswd)
if err != nil {
logrus.Error(fmt.Sprintf("添加初始化admin账号失败!"))
return
} else {
logrus.Error(fmt.Sprintf("初始化admin账号成功!您的账号:%s 密码:%s", initAccount, initAccountPasswd))
}
err = models.AddOneSetting(models.Settings{Section: initSection, Key: initAuthKey, Value: "1"})
if err != nil {
logrus.Error(fmt.Sprintf("标记admin账号初始化状态失败!err: %s", err.Error()))
return
}
}
func Setup() {
db := models.Setup()
//defer func(db *gorm.DB) {
// err := db.Close()
// if err != nil {
//
// }
//}(db)
//if setting.AppSetting.InitData != "enable" {
// return
//}
entry := logrus.WithFields(logrus.Fields{
"prefix": "[Init Data]",
})
tables := []interface{}{
&models.Auth{},
&models.SendTasks{},
&models.SendWays{},
&models.SendTasksLogs{},
&models.SendTasksIns{},
&models.Settings{},
&models.CronMessages{},
&models.HostedMessage{},
&models.LoginLog{},
&models.Template{},
&models.SendStats{},
}
for _, table := range tables {
//tableName := db.NewScope(table).TableName()
tableName := models.GetSchema(table)
entry.Infof("Migrate table: %s", tableName)
err := db.AutoMigrate(table)
if err != nil {
entry.Infof("Migrate table erorr: %s", err.Error())
}
}
entry.Infof("Init Account data...")
InitAuthTableData()
entry.Infof("Init Custom Site data...")
ss := settings_service.InitSettingService{}
ss.InitSiteConfig()
entry.Infof("Init Cron data...")
ss.InitLogConfig()
ss.InitHostedMsgConfig()
entry.Infof("All table data init done.")
}