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

Method ToBackup

class/databaseModel/sqlserverModel.py:195–227  ·  view source on GitHub ↗

@备份数据库 id 数据库id

(self, args)

Source from the content-addressed store, hash-verified

193 return public.returnMsg(True, 'DEL_SUCCESS')
194
195 def ToBackup(self, args):
196 """
197 @备份数据库 id 数据库id
198 """
199 id = args['id']
200 find = public.M('databases').where("id=? AND LOWER(type)=LOWER('SQLServer')", (id,)).find()
201 if not find: return public.returnMsg(False, '数据库不存在!')
202
203 self.CheckBackupPath(args)
204
205 fileName = f"{find['name']}_sqlserver_data_{time.strftime('%Y%m%d_%H%M%S', time.localtime())}.bak"
206 backupName = session['config']['backup_path'] + '/database/sqlserver/' + fileName
207
208 mssql_obj = self.get_mssql_obj_by_sid(find['sid'])
209
210 if not int(find['sid']):
211 ret = mssql_obj.execute("backup database %s To disk='%s'" % (find['name'], backupName))
212 isError = self.IsSqlError(ret)
213 if isError != None: return isError
214 else:
215 # 远程数据库
216 return public.returnMsg(False, '操作失败,远程数据库无法备份.')
217
218 if not os.path.exists(backupName):
219 return public.returnMsg(False, 'BACKUP_ERROR')
220
221 public.M('backup').add('type,name,pid,filename,size,addtime', (1, fileName, id, backupName, 0, time.strftime('%Y-%m-%d %X', time.localtime())))
222 public.WriteLog("TYPE_DATABASE", "DATABASE_BACKUP_SUCCESS", (find['name'],))
223
224 if os.path.getsize(backupName) < 2048:
225 return public.returnMsg(True, '备份执行成功,备份文件小于2Kb,请检查备份完整性.')
226 else:
227 return public.returnMsg(True, 'BACKUP_SUCCESS')
228
229 def DelBackup(self, args):
230 """

Callers

nothing calls this directly

Calls 10

CheckBackupPathMethod · 0.95
get_mssql_obj_by_sidMethod · 0.95
returnMsgMethod · 0.80
findMethod · 0.45
whereMethod · 0.45
MMethod · 0.45
executeMethod · 0.45
IsSqlErrorMethod · 0.45
existsMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected