MCPcopy Create free account
hub / github.com/aaPanel/BaoTa / DeleteDatabase

Method DeleteDatabase

class/databaseModel/pgsqlModel.py:566–599  ·  view source on GitHub ↗

@删除数据库

(self, get)

Source from the content-addressed store, hash-verified

564 return public.returnMsg(False,str(e))
565
566 def DeleteDatabase(self, get):
567 """
568 @删除数据库
569 """
570 id = get['id']
571 find = public.M('databases').where("id=? AND LOWER(type)=LOWER('PgSql')", (id,)).field('id,pid,name,username,password,accept,ps,addtime,db_type,conn_config,sid,type').find()
572 if not find: return public.returnMsg(False, '指定数据库不存在.')
573
574 name = get['name']
575 username = find['username']
576
577 pgsql_obj = self.get_sql_obj_by_sid(find['sid'])
578 status, err_msg = pgsql_obj.connect()
579 if status is False:
580 return public.returnMsg(False, "连接数据库失败!")
581
582 # 查询当前数据是否被连接
583 data_list = pgsql_obj.query("""SELECT * FROM pg_stat_activity WHERE datname = '{}';""".format(name))
584 if data_list:
585 return public.returnMsg(False, "删除失败!当前数据库正在连接中!")
586 resp = pgsql_obj.execute("""DROP DATABASE "{}";""".format(name))
587 if resp is not None:
588 return public.returnMsg(False, "删除数据库失败!")
589 pgsql_obj.execute("""DROP USER "{}";""".format(username))
590 # 删除SQLITE
591 public.M('databases').where("id=? AND LOWER(type)=LOWER('PgSql')", (id,)).delete()
592 public.WriteLog("TYPE_DATABASE", 'DATABASE_DEL_SUCCESS', (name,))
593
594 #删除配置文件中的数据库配置
595 try:
596 self.DeletePluginDatabaseConf(name)
597 except:
598 pass
599 return public.returnMsg(True, 'DEL_SUCCESS')
600
601 def ToBackup(self, args):
602 """

Callers 2

batch_delete_databaseMethod · 0.45
batch_delete_sqliteMethod · 0.45

Calls 12

get_sql_obj_by_sidMethod · 0.95
returnMsgMethod · 0.80
findMethod · 0.45
fieldMethod · 0.45
whereMethod · 0.45
MMethod · 0.45
connectMethod · 0.45
queryMethod · 0.45
formatMethod · 0.45
executeMethod · 0.45
deleteMethod · 0.45

Tested by

no test coverage detected