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

Method DeleteDatabase

class/database.py:990–1031  ·  view source on GitHub ↗
(self, get)

Source from the content-addressed store, hash-verified

988
989 # 删除数据库
990 def DeleteDatabase(self, get):
991 if not hasattr(get, "id"):
992 return public.returnMsg(False, "缺少参数!id")
993 if not hasattr(get, "name"):
994 return public.returnMsg(False, "缺少参数!name")
995 db_id = get.id
996 db_name = get.name
997 db_find = public.M("databases").where("id=? AND name=? AND LOWER(type)=LOWER('mysql')", (db_id, db_name)).find()
998 if not db_find:
999 return public.returnMsg(False, "数据库[{}]不存在".format(db_name))
1000
1001 if db_find["db_type"] == 0 or db_find["sid"]: # # 删除本地数据库
1002 if os.path.exists("data/recycle_bin_db.pl") and db_find["sid"] == 0:
1003 return self.DeleteToRecycleBin(db_name)
1004
1005 username = db_find["username"]
1006 # 删除MYSQL
1007 mysql_obj = public.get_mysql_obj_by_sid(db_find["sid"])
1008 if not mysql_obj:
1009 if db_find["sid"] != "0":
1010 return public.returnMsg(False, "远程数据库连接失败,请检查远程数据库是否正常/账户密码是否正确".format(db_name))
1011 else:
1012 return public.returnMsg(False, "数据库[{}]连接失败,请检查数据库是否启动/root密码是否正确".format(db_name))
1013 db_exists = mysql_obj.execute("SHOW DATABASES LIKE '{}'".format(db_name))
1014 if db_exists:
1015 result = mysql_obj.execute("DROP database `{}`".format(db_name))
1016 isError = self.IsSqlError(result)
1017 if isError != None: return isError
1018 user_host = mysql_obj.query("select Host from mysql.user where User='{}'".format(username))
1019 if isinstance(user_host, list):
1020 for host in user_host:
1021 mysql_obj.execute("DROP USER `{}`@`{}`".format(username, host[0]))
1022 mysql_obj.execute("flush privileges")
1023 # 删除SQLITE
1024 public.M('databases').where("id=? AND name=? AND LOWER(type)=LOWER('mysql')", (db_id, db_name)).delete()
1025 public.WriteLog("TYPE_DATABASE", 'DATABASE_DEL_SUCCESS', (db_name,))
1026 try:
1027 self.delete_quota_entry(db_name)
1028 except:
1029 pass
1030
1031 return public.returnMsg(True, 'DEL_SUCCESS')
1032
1033 # 删除数据库时调用的主函数
1034 def delete_quota_entry(self, db_name):

Callers 6

delete_databaseMethod · 0.45
DeleteSiteMethod · 0.45
delete_databaseMethod · 0.45
DeleteSiteMethod · 0.45

Calls 12

DeleteToRecycleBinMethod · 0.95
IsSqlErrorMethod · 0.95
delete_quota_entryMethod · 0.95
returnMsgMethod · 0.80
findMethod · 0.45
whereMethod · 0.45
MMethod · 0.45
formatMethod · 0.45
existsMethod · 0.45
executeMethod · 0.45
queryMethod · 0.45
deleteMethod · 0.45

Tested by

no test coverage detected