fix: 忽略特定SQL执行错误

This commit is contained in:
TsMask
2025-05-22 18:03:22 +08:00
parent 9eb216f790
commit a15d408df1

View File

@@ -93,11 +93,17 @@ func processSQLFile(db *gorm.DB, filePath string) {
if strings.HasSuffix(line, ";") {
// 执行 SQL 语句
if err := db.Exec(sqlBuilder.String()).Error; err != nil {
errorStr := err.Error()
if strings.Contains(strings.ToLower(errorStr), "duplicate column") {
// 重复字段错误忽略
errorStr := strings.ToLower(err.Error())
// log.Printf("Exec SQL: %s\n", line)
// log.Println(err.Error())
if strings.Contains(errorStr, "duplicate column") {
// 忽略重复字段错误 Error 1060 (42S21): Duplicate column name 'field_name'
} else if strings.Contains(errorStr, "duplicate key") {
// 忽略重复索引错误 Error 1061 (42000): Duplicate key name 'key_name'
} else if strings.Contains(errorStr, "unknown column") {
// 忽略未知字段错误 Error 1054 (42S22): Unknown column 'field_name' in 'table'
} else if strings.Contains(errorStr, "check that it exists") {
// 忽略删除字段错误 Error 1091 (42000): Can't DROP COLUMN `field_name`; check that it exists
} else {
// 其他错误终止程序
log.Fatalln(errorStr)