fix: Optimize warning messages for database deletion (#10226)

This commit is contained in:
ssongliu 2025-09-02 13:43:44 +08:00 committed by GitHub
parent 592e315f21
commit bff1a8ad60
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 15 additions and 17 deletions

View file

@ -3,11 +3,12 @@ package service
import (
"context"
"fmt"
"github.com/1Panel-dev/1Panel/agent/constant"
"os"
"path"
"strings"
"github.com/1Panel-dev/1Panel/agent/constant"
"github.com/1Panel-dev/1Panel/agent/app/repo"
"github.com/1Panel-dev/1Panel/agent/app/dto"
@ -320,6 +321,9 @@ func (u *PostgresqlService) Delete(ctx context.Context, req dto.PostgresqlDBDele
ForceDelete: req.ForceDelete,
Timeout: 300,
}); err != nil && !req.ForceDelete {
if strings.HasPrefix(err.Error(), "drop user") {
_ = postgresqlRepo.Update(db.ID, map[string]interface{}{"is_delete": true})
}
return err
}

View file

@ -117,17 +117,17 @@ func (r *Local) Delete(info DeleteInfo) error {
for _, user := range userlist {
if strings.HasPrefix(info.Version, "5.6") {
if err := r.ExecSQL(fmt.Sprintf("drop user %s", user), info.Timeout); err != nil && !info.ForceDelete {
return err
return fmt.Errorf("drop user failed, err: %v", err)
}
} else {
if err := r.ExecSQL(fmt.Sprintf("drop user if exists %s", user), info.Timeout); err != nil && !info.ForceDelete {
return err
return fmt.Errorf("drop user failed, err: %v", err)
}
}
}
if len(info.Name) != 0 {
if err := r.ExecSQL(fmt.Sprintf("drop database if exists `%s`", info.Name), info.Timeout); err != nil && !info.ForceDelete {
return err
return fmt.Errorf("drop database failed, err: %v", err)
}
}
if !info.ForceDelete {

View file

@ -128,17 +128,17 @@ func (r *Remote) Delete(info DeleteInfo) error {
for _, user := range userlist {
if strings.HasPrefix(info.Version, "5.6") {
if err := r.ExecSQL(fmt.Sprintf("drop user %s", user), info.Timeout); err != nil && !info.ForceDelete {
return err
return fmt.Errorf("drop user failed, err: %v", err)
}
} else {
if err := r.ExecSQL(fmt.Sprintf("drop user if exists %s", user), info.Timeout); err != nil && !info.ForceDelete {
return err
return fmt.Errorf("drop user failed, err: %v", err)
}
}
}
if len(info.Name) != 0 {
if err := r.ExecSQL(fmt.Sprintf("drop database if exists `%s`", info.Name), info.Timeout); err != nil && !info.ForceDelete {
return err
return fmt.Errorf("drop database failed, err: %v", err)
}
}
if !info.ForceDelete {

View file

@ -101,15 +101,12 @@ func (r *Local) Delete(info DeleteInfo) error {
if len(info.Name) != 0 {
dropSql := fmt.Sprintf("DROP DATABASE \"%s\"", info.Name)
if err := r.ExecSQL(dropSql, info.Timeout); err != nil && !info.ForceDelete {
return err
return fmt.Errorf("drop database failed, err: %v", err)
}
}
dropSql := fmt.Sprintf("DROP USER \"%s\"", info.Username)
if err := r.ExecSQL(dropSql, info.Timeout); err != nil && !info.ForceDelete {
if strings.Contains(strings.ToLower(err.Error()), "depend on it") {
return buserr.WithDetail("ErrInUsed", info.Username, nil)
}
return err
return fmt.Errorf("drop user failed, err: %v", err)
}
return nil
}

View file

@ -96,15 +96,12 @@ func (r *Remote) Delete(info DeleteInfo) error {
if len(info.Name) != 0 {
dropSql := fmt.Sprintf("DROP DATABASE \"%s\"", info.Name)
if err := r.ExecSQL(dropSql, info.Timeout); err != nil && !info.ForceDelete {
return err
return fmt.Errorf("drop database failed, err: %v", err)
}
}
dropSql := fmt.Sprintf("DROP USER \"%s\"", info.Username)
if err := r.ExecSQL(dropSql, info.Timeout); err != nil && !info.ForceDelete {
if strings.Contains(strings.ToLower(err.Error()), "depend on it") {
return buserr.WithDetail("ErrInUsed", info.Username, nil)
}
return err
return fmt.Errorf("drop user failed, err: %v", err)
}
return nil
}