mirror of
https://github.com/yangjian102621/geekai.git
synced 2026-04-27 05:24:27 +08:00
重命名数据表
This commit is contained in:
@@ -51,6 +51,7 @@ func (s *MigrationService) StartMigrate() {
|
||||
s.MigrateConfig(s.appConfig)
|
||||
s.TableMigration()
|
||||
s.MigrateLicense()
|
||||
s.TableRename()
|
||||
}()
|
||||
}
|
||||
|
||||
@@ -168,6 +169,63 @@ func (s *MigrationService) TableMigration() {
|
||||
}
|
||||
}
|
||||
|
||||
// 遍历所有的数据表,如果表名中包含 chatgpt_,则重命名为 geekai_,只执行一次
|
||||
func (s *MigrationService) TableRename() {
|
||||
key := "migrate:table_rename"
|
||||
if s.redisClient.Get(context.Background(), key).Val() == "1" {
|
||||
logger.Info("数据表重命名已执行,跳过重命名")
|
||||
return
|
||||
}
|
||||
|
||||
logger.Info("开始重命名数据表...")
|
||||
|
||||
// 定义需要重命名的表映射
|
||||
tableRenames := map[string]string{
|
||||
"chatgpt_users": "geekai_users",
|
||||
"chatgpt_orders": "geekai_orders",
|
||||
"chatgpt_products": "geekai_products",
|
||||
"chatgpt_configs": "geekai_configs",
|
||||
"chatgpt_sd_jobs": "geekai_sd_jobs",
|
||||
"chatgpt_mj_jobs": "geekai_mj_jobs",
|
||||
"chatgpt_suno_jobs": "geekai_suno_jobs",
|
||||
"chatgpt_dall_jobs": "geekai_dall_jobs",
|
||||
"chatgpt_video_jobs": "geekai_video_jobs",
|
||||
"chatgpt_jimeng_jobs": "geekai_jimeng_jobs",
|
||||
"chatgpt_files": "geekai_files",
|
||||
"chatgpt_menus": "geekai_menus",
|
||||
"chatgpt_functions": "geekai_functions",
|
||||
"chatgpt_invite_codes": "geekai_invite_codes",
|
||||
"chatgpt_invite_logs": "geekai_invite_logs",
|
||||
"chatgpt_redeems": "geekai_redeems",
|
||||
"chatgpt_power_logs": "geekai_power_logs",
|
||||
"chatgpt_user_login_logs": "geekai_user_login_logs",
|
||||
}
|
||||
|
||||
// 执行重命名操作
|
||||
for oldTableName, newTableName := range tableRenames {
|
||||
// 检查旧表是否存在
|
||||
if s.db.Migrator().HasTable(oldTableName) {
|
||||
// 检查新表是否已存在
|
||||
if !s.db.Migrator().HasTable(newTableName) {
|
||||
err := s.db.Exec(fmt.Sprintf("ALTER TABLE %s RENAME TO %s", oldTableName, newTableName)).Error
|
||||
if err != nil {
|
||||
logger.Errorf("重命名数据表 %s 到 %s 失败: %v", oldTableName, newTableName, err)
|
||||
} else {
|
||||
logger.Infof("成功重命名数据表: %s -> %s", oldTableName, newTableName)
|
||||
}
|
||||
} else {
|
||||
logger.Infof("目标表 %s 已存在,跳过重命名 %s", newTableName, oldTableName)
|
||||
}
|
||||
} else {
|
||||
logger.Infof("源表 %s 不存在,跳过重命名", oldTableName)
|
||||
}
|
||||
}
|
||||
|
||||
// 标记重命名已完成
|
||||
s.redisClient.Set(context.Background(), key, "1", 0)
|
||||
logger.Info("数据表重命名完成")
|
||||
}
|
||||
|
||||
// 迁移配置数据
|
||||
func (s *MigrationService) MigrateConfig(config *types.AppConfig) error {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user