From bff6abd57e9789434e917e279af8ef43a59c852a Mon Sep 17 00:00:00 2001 From: engigu Date: Sat, 13 Jan 2024 13:43:30 +0800 Subject: [PATCH] feat: update migrate rule --- README.md | 15 +++++++++++++++ conf/app.example.ini | 3 +++ migrate/migrate.go | 21 ++++++++++++++++++--- pkg/setting/setting.go | 1 + service/cron_service/tasks.go | 2 +- 5 files changed, 38 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 57f88c9..ff6449b 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,21 @@ Message Nest 是一个灵活而强大的消息推送整合平台,旨在简化 3. 重命名conf/app.example.ini为conf/app.ini 4. 修改app.ini对应的配置 5. 启动项目会自动创建表和账号 (也可以使用database.sql在数据库中执行,进行表数据初始化) +```shell +# 第一次运行将app.ini中的app.InitData设置为enable,会自动进行表数据的初始化 +# 后续不需要开启这个配置 +# INFO登录启动回出现如下日志 + +[2024-01-13 13:40:09.075] INFO [migrate.go:70 Setup] [Init Data]: Migrate table: message_auth +[2024-01-13 13:40:11.778] INFO [migrate.go:70 Setup] [Init Data]: Migrate table: message_send_tasks +[2024-01-13 13:40:16.518] INFO [migrate.go:70 Setup] [Init Data]: Migrate table: message_send_ways +[2024-01-13 13:40:23.300] INFO [migrate.go:70 Setup] [Init Data]: Migrate table: message_send_tasks_logs +[2024-01-13 13:40:28.715] INFO [migrate.go:70 Setup] [Init Data]: Migrate table: message_send_tasks_ins +[2024-01-13 13:40:39.538] INFO [migrate.go:70 Setup] [Init Data]: Migrate table: message_settings +[2024-01-13 13:40:46.299] INFO [migrate.go:74 Setup] [Init Data]: Init Account data... +[2024-01-13 13:40:46.751] INFO [migrate.go:77 Setup] [Init Data]: All table data init done. + +``` 6. 启动项目,访问8000端口,初始账号为admin,密码为123456 diff --git a/conf/app.example.ini b/conf/app.example.ini index 38b5c25..12af037 100644 --- a/conf/app.example.ini +++ b/conf/app.example.ini @@ -3,6 +3,9 @@ JwtSecret = message-nest RuntimeRootPath = runtime/ LogLevel = INFO +; init table data, first run set enable +InitData = enable + [server] ; debug or release RunMode = release diff --git a/migrate/migrate.go b/migrate/migrate.go index eb8355b..9ea9e8d 100644 --- a/migrate/migrate.go +++ b/migrate/migrate.go @@ -40,7 +40,6 @@ func InitAuthTableData() { } func Setup() { - setting.Setup() db := models.Setup() defer func(db *gorm.DB) { err := db.Close() @@ -49,15 +48,31 @@ func Setup() { } }(db) - db.AutoMigrate( + 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{}, - ) + } + for _, table := range tables { + tableName := db.NewScope(table).TableName() + entry.Infof("Migrate table: %s", tableName) + db.AutoMigrate(table) + } + + entry.Infof("Init Account data...") InitAuthTableData() + entry.Infof("All table data init done.") } diff --git a/pkg/setting/setting.go b/pkg/setting/setting.go index de6ba1a..5194bc3 100644 --- a/pkg/setting/setting.go +++ b/pkg/setting/setting.go @@ -12,6 +12,7 @@ type App struct { RuntimeRootPath string LogLevel string + InitData string } var AppSetting = &App{} diff --git a/service/cron_service/tasks.go b/service/cron_service/tasks.go index 0b58b72..fec26fc 100644 --- a/service/cron_service/tasks.go +++ b/service/cron_service/tasks.go @@ -37,7 +37,7 @@ func AddTask(task ScheduledTask) cron.EntryID { logrus.Error(fmt.Sprintf("添加定时任务失败,原因:%s", err)) } else { TaskList[taskId] = &task - logrus.Error(fmt.Sprintf("添加定时任务成功,entryID: %d, cron: %s", taskId, task.Schedule)) + logrus.Info(fmt.Sprintf("添加定时任务成功,entryID: %d, cron: %s", taskId, task.Schedule)) } return taskId }