98 lines
2.2 KiB
Go
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.")
|
|
}
|