|
|
@@ -64,22 +64,6 @@ var DB *gorm.DB
|
|
|
|
|
|
var LOG_DB *gorm.DB
|
|
|
|
|
|
-// dropIndexIfExists drops a MySQL index only if it exists to avoid noisy 1091 errors
|
|
|
-func dropIndexIfExists(tableName string, indexName string) {
|
|
|
- if !common.UsingMySQL {
|
|
|
- return
|
|
|
- }
|
|
|
- var count int64
|
|
|
- // Check index existence via information_schema
|
|
|
- err := DB.Raw(
|
|
|
- "SELECT COUNT(1) FROM information_schema.statistics WHERE table_schema = DATABASE() AND table_name = ? AND index_name = ?",
|
|
|
- tableName, indexName,
|
|
|
- ).Scan(&count).Error
|
|
|
- if err == nil && count > 0 {
|
|
|
- _ = DB.Exec("ALTER TABLE " + tableName + " DROP INDEX " + indexName + ";").Error
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
func createRootAccountIfNeed() error {
|
|
|
var user User
|
|
|
//if user.Status != common.UserStatusEnabled {
|
|
|
@@ -263,16 +247,6 @@ func InitLogDB() (err error) {
|
|
|
}
|
|
|
|
|
|
func migrateDB() error {
|
|
|
- // 修复旧版本留下的唯一索引,允许软删除后重新插入同名记录
|
|
|
- // 删除单列唯一索引(列级 UNIQUE)及早期命名方式,防止与新复合唯一索引 (model_name, deleted_at) 冲突
|
|
|
- dropIndexIfExists("models", "uk_model_name") // 新版复合索引名称(若已存在)
|
|
|
- dropIndexIfExists("models", "model_name") // 旧版列级唯一索引名称
|
|
|
-
|
|
|
- dropIndexIfExists("vendors", "uk_vendor_name") // 新版复合索引名称(若已存在)
|
|
|
- dropIndexIfExists("vendors", "name") // 旧版列级唯一索引名称
|
|
|
- // 清理旧索引名(兼容历史),避免与新的复合唯一索引冲突
|
|
|
- // 说明:仅清理旧名 uk_model_name/model_name、uk_vendor_name/name;新索引名 uk_model_name_delete_at/uk_vendor_name_delete_at 不在清理范围
|
|
|
- // 计划:该兼容逻辑将在后续几个版本中移除
|
|
|
err := DB.AutoMigrate(
|
|
|
&Channel{},
|
|
|
&Token{},
|
|
|
@@ -299,14 +273,6 @@ func migrateDB() error {
|
|
|
}
|
|
|
|
|
|
func migrateDBFast() error {
|
|
|
- // 清理旧索引名(兼容历史),允许软删除后重新插入同名记录
|
|
|
- // 说明:仅清理旧名 uk_model_name/model_name、uk_vendor_name/name;新索引名 uk_model_name_delete_at/uk_vendor_name_delete_at 不在清理范围
|
|
|
- // 计划:该兼容逻辑将在后续几个版本中移除
|
|
|
- dropIndexIfExists("models", "uk_model_name")
|
|
|
- dropIndexIfExists("models", "model_name")
|
|
|
-
|
|
|
- dropIndexIfExists("vendors", "uk_vendor_name")
|
|
|
- dropIndexIfExists("vendors", "name")
|
|
|
|
|
|
var wg sync.WaitGroup
|
|
|
|