diff --git a/server/db/db.go b/server/db/db.go index a83426c6276b8d85da117c0a625ed63835a28715..0efd19d0a3faf52a73368671c06fef36437cdfa7 100644 --- a/server/db/db.go +++ b/server/db/db.go @@ -22,7 +22,25 @@ type MysqlManager struct { db *gorm.DB } +func ensureDatabase(conf *config.MysqlDBInfo) { + Url = fmt.Sprintf("%s:%s@(%s:%d)/?charset=utf8mb4&parseTime=true", + conf.UserName, + conf.Password, + conf.HostName, + conf.Port) + db, err := gorm.Open(mysql.Open(Url)) + if err != nil { + logger.Error(err.Error()) + } + + creatDataBase := "CREATE DATABASE IF NOT EXISTS " + conf.DataBase + " DEFAULT CHARSET utf8 COLLATE utf8_general_ci" + db.Exec(creatDataBase) +} + func MysqldbInit(conf *config.MysqlDBInfo) error { + // 检查数据库是否存在,不存在则创建 + ensureDatabase(conf) + m := &MysqlManager{ ip: conf.HostName, port: conf.Port, @@ -55,6 +73,6 @@ func MysqldbInit(conf *config.MysqlDBInfo) error { db.SetMaxIdleConns(10) db.SetMaxOpenConns(100) - global.GlobalDB.AutoMigrate() + global.GlobalDB.AutoMigrate(&service.RedisExportTarget{}) return nil } diff --git a/server/main.go b/server/main.go index 796521c2d45c79aa8a150397c8719fab1710979b..4a757e5f5934650c4494c748c5195d2ef8ce2ff3 100644 --- a/server/main.go +++ b/server/main.go @@ -28,16 +28,16 @@ func main() { os.Exit(-1) } - server := router.InitRouter() - global.GlobalClient = client.DefaultClient(plugin.Init(config.Config().Redis)) - router.RegisterAPIs(server) - global.GlobalClient.Server = config.Config().Http.Addr - if err := db.MysqldbInit(config.Config().Mysql); err != nil { logger.Error("mysql db init failed, please check again: %s", err) os.Exit(-1) } + server := router.InitRouter() + global.GlobalClient = client.DefaultClient(plugin.Init(config.Config().Redis)) + router.RegisterAPIs(server) + global.GlobalClient.Server = config.Config().Http.Addr + if err := server.Run(config.Config().Http.Addr); err != nil { logger.Fatal("failed to run server") } diff --git a/server/service/agent.go b/server/service/agent.go index 8af29c27a51d0d123171315e0ed90616a05ff463..c0c21c4080629607c9fcdd1262fcd783f93d06ca 100644 --- a/server/service/agent.go +++ b/server/service/agent.go @@ -8,6 +8,13 @@ import ( "openeuler.org/PilotGo/redis-plugin/plugin" ) +type RedisExportTarget struct { + ID uint `gorm:"primary_key;AUTO_INCREMENT" json:"id"` + UUID string `json:"uuid"` + Status string `json:"status"` //install or remove + UpdatedAt time.Time +} + func FormatData(cmdResults []*client.CmdResult) ([]string, []interface{}, error) { ret := []interface{}{} monitorTargets := []string{}