(ctx context.Context, req dto.MysqlDBDelete)
| 285 | } |
| 286 | |
| 287 | func (u *MysqlService) Delete(ctx context.Context, req dto.MysqlDBDelete) error { |
| 288 | db, err := mysqlRepo.Get(repo.WithByID(req.ID)) |
| 289 | if err != nil && !req.ForceDelete { |
| 290 | return err |
| 291 | } |
| 292 | cli, version, err := LoadMysqlClientByFrom(req.Database) |
| 293 | if err != nil { |
| 294 | return err |
| 295 | } |
| 296 | defer cli.Close() |
| 297 | if err := cli.Delete(client.DeleteInfo{ |
| 298 | Name: db.Name, |
| 299 | Version: version, |
| 300 | Username: db.Username, |
| 301 | Permission: db.Permission, |
| 302 | Timeout: 300, |
| 303 | }); err != nil && !req.ForceDelete { |
| 304 | return err |
| 305 | } |
| 306 | |
| 307 | if req.DeleteBackup { |
| 308 | uploadDir := filepath.Join(global.Dir.DataDir, fmt.Sprintf("uploads/database/%s/%s/%s", req.Type, req.Database, db.Name)) |
| 309 | if _, err := os.Stat(uploadDir); err == nil { |
| 310 | _ = os.RemoveAll(uploadDir) |
| 311 | } |
| 312 | backupDir := filepath.Join(global.Dir.LocalBackupDir, fmt.Sprintf("database/%s/%s/%s", req.Type, db.MysqlName, db.Name)) |
| 313 | if _, err := os.Stat(backupDir); err == nil { |
| 314 | _ = os.RemoveAll(backupDir) |
| 315 | } |
| 316 | _ = backupRepo.DeleteRecord(ctx, repo.WithByType(req.Type), repo.WithByName(req.Database), repo.WithByDetailName(db.Name)) |
| 317 | global.LOG.Infof("delete database %s-%s backups successful", req.Database, db.Name) |
| 318 | } |
| 319 | |
| 320 | _ = mysqlRepo.Delete(ctx, repo.WithByID(db.ID)) |
| 321 | return nil |
| 322 | } |
| 323 | |
| 324 | func (u *MysqlService) ChangePassword(req dto.ChangeDBInfo) error { |
| 325 | if cmd.CheckIllegal(req.Value) { |
nothing calls this directly
no test coverage detected