MCPcopy Create free account
hub / github.com/1Panel-dev/1Panel / Delete

Method Delete

agent/app/service/database_postgresql.go:304–341  ·  view source on GitHub ↗
(ctx context.Context, req dto.PostgresqlDBDelete)

Source from the content-addressed store, hash-verified

302}
303
304func (u *PostgresqlService) Delete(ctx context.Context, req dto.PostgresqlDBDelete) error {
305 db, err := postgresqlRepo.Get(repo.WithByID(req.ID))
306 if err != nil && !req.ForceDelete {
307 return err
308 }
309 cli, err := LoadPostgresqlClientByFrom(req.Database)
310 if err != nil {
311 return err
312 }
313 defer cli.Close()
314 if err := cli.Delete(client.DeleteInfo{
315 Name: db.Name,
316 Username: db.Username,
317 ForceDelete: req.ForceDelete,
318 Timeout: 300,
319 }); err != nil && !req.ForceDelete {
320 if strings.HasPrefix(err.Error(), "drop user") {
321 _ = postgresqlRepo.Update(db.ID, map[string]interface{}{"is_delete": true})
322 }
323 return err
324 }
325
326 if req.DeleteBackup {
327 uploadDir := path.Join(global.Dir.DataDir, fmt.Sprintf("uploads/database/%s/%s/%s", req.Type, req.Database, db.Name))
328 if _, err := os.Stat(uploadDir); err == nil {
329 _ = os.RemoveAll(uploadDir)
330 }
331 backupDir := path.Join(global.Dir.LocalBackupDir, fmt.Sprintf("database/%s/%s/%s", req.Type, db.PostgresqlName, db.Name))
332 if _, err := os.Stat(backupDir); err == nil {
333 _ = os.RemoveAll(backupDir)
334 }
335 _ = backupRepo.DeleteRecord(ctx, repo.WithByType(req.Type), repo.WithByName(req.Database), repo.WithByDetailName(db.Name))
336 global.LOG.Infof("delete database %s-%s backups successful", req.Database, db.Name)
337 }
338
339 _ = postgresqlRepo.Delete(ctx, repo.WithByID(db.ID))
340 return nil
341}
342
343func (u *PostgresqlService) ChangePrivileges(req dto.PostgresqlPrivileges) error {
344 if cmd.CheckIllegal(req.Database, req.Username) {

Callers

nothing calls this directly

Calls 12

RemoveAllMethod · 0.80
GetMethod · 0.65
WithByIDMethod · 0.65
CloseMethod · 0.65
DeleteMethod · 0.65
UpdateMethod · 0.65
DeleteRecordMethod · 0.65
WithByTypeMethod · 0.65
WithByDetailNameMethod · 0.65
ErrorMethod · 0.45
StatMethod · 0.45

Tested by

no test coverage detected