重命名数据表

This commit is contained in:
RockYang
2025-09-01 07:35:37 +08:00
parent 9a4239290b
commit 3531c7f356
31 changed files with 133 additions and 60 deletions

View File

@@ -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 {