|
@@ -2,7 +2,10 @@ using OASystem.Domain.AesEncryption;
|
|
|
using OASystem.Domain.Entities.Customer;
|
|
|
using OASystem.Domain.Entities.Financial;
|
|
|
using OASystem.Domain.Entities.Groups;
|
|
|
+using SqlSugar;
|
|
|
using System.Collections;
|
|
|
+using System.Data;
|
|
|
+using static NPOI.HSSF.Util.HSSFColor;
|
|
|
using static OASystem.API.OAMethodLib.GeneralMethod;
|
|
|
using static OASystem.API.OAMethodLib.JWTHelper;
|
|
|
|
|
@@ -3047,5 +3050,70 @@ And u.UId = {0} And u.FId = 1 ", dto.UserId);
|
|
|
return Ok(JsonView(false));
|
|
|
}
|
|
|
#endregion
|
|
|
+
|
|
|
+ #region backups
|
|
|
+ /// <summary>
|
|
|
+ /// 数据库备份
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet)]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> SQLServerBackups()
|
|
|
+ {
|
|
|
+ var now = DateTime.Now;
|
|
|
+
|
|
|
+ var folderPath = $"D:\\数据备份\\{now.ToString("yyyyMMdd")}\\SQLServerBackups";
|
|
|
+ if (!Directory.Exists(folderPath)) Directory.CreateDirectory(folderPath);
|
|
|
+
|
|
|
+ //string backupFilePath = $"{folderPath}\\database_backup_OA2014DB_{now.ToString("yyyyMMddHHmmss")}.bat";
|
|
|
+ //var backupSql = $"BACKUP DATABASE [OA2014] TO DISK='{backupFilePath}'";
|
|
|
+ //Console.WriteLine($"原生备份开始执行");
|
|
|
+ //_sqlSugar.ChangeDatabase(DBEnum.OA2014DB);
|
|
|
+ //await _sqlSugar.Ado.ExecuteCommandAsync(backupSql);
|
|
|
+ //Console.WriteLine($"原生备份成功,文件已生成到:{backupFilePath}");
|
|
|
+
|
|
|
+ //string backupFilePath = $"{folderPath}\\database_backup_OA2014DB_{now.ToString("yyyyMMddHHmmss")}.sql";
|
|
|
+ //var backupSql = $"BACKUP DATABASE [OA2014] TO DISK='{backupFilePath}'";
|
|
|
+
|
|
|
+ //Console.WriteLine($"原生备份开始执行");
|
|
|
+ //_sqlSugar.ChangeDatabase(DBEnum.OA2014DB);
|
|
|
+ //using (StreamWriter writer = new StreamWriter(backupFilePath))
|
|
|
+ //{
|
|
|
+ // // 获取所有表名
|
|
|
+ // var tables = _sqlSugar.Ado.GetDataTable("SELECT name FROM sys.tables").AsEnumerable();
|
|
|
+
|
|
|
+ // foreach (var tableRow in tables)
|
|
|
+ // {
|
|
|
+ // var tableName = tableRow.Field<string>("name");
|
|
|
+
|
|
|
+ // // 获取表结构的 SQL
|
|
|
+ // var createTableSql = _sqlSugar.Ado.GetDataTable($@"
|
|
|
+ // SELECT OBJECT_DEFINITION(OBJECT_ID('{tableName}')) AS CreateTableSql").Rows[0][0];
|
|
|
+ // writer.WriteLine(createTableSql);
|
|
|
+ // writer.WriteLine();
|
|
|
+
|
|
|
+ // // 获取表数据并生成 INSERT 脚本
|
|
|
+ // var data = _sqlSugar.Queryable<dynamic>().AS(tableName) .ToList();
|
|
|
+ // foreach (var item in data)
|
|
|
+ // {
|
|
|
+ // var properties = item.GetType().GetProperties();
|
|
|
+ // var values = new List<string>();
|
|
|
+ // foreach (var prop in properties)
|
|
|
+ // {
|
|
|
+ // var value = prop.GetValue(item);
|
|
|
+ // values.Add(value == null ? "NULL" : $"'{value}'");
|
|
|
+ // }
|
|
|
+ // var insertSql = $"INSERT INTO {tableName} VALUES ({string.Join(", ", values)});";
|
|
|
+ // writer.WriteLine(insertSql);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+
|
|
|
+ //Console.WriteLine($"数据库备份成功,SQL 脚本已生成到:{backupFilePath}");
|
|
|
+
|
|
|
+ return Ok(JsonView(false));
|
|
|
+ }
|
|
|
+
|
|
|
+ #endregion
|
|
|
}
|
|
|
}
|