@备份数据库 id 数据库id
(self, args)
| 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 | """ |
nothing calls this directly
no test coverage detected