fix:数据备份

pg_adapter
wangxy 8 months ago
parent c81902e905
commit b5f6a8d5ba

@ -0,0 +1,63 @@
package com.ruoyi.web.controller.monitor;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.io.File;
/**
* packageName com.ruoyi.web.controller.monitor
*
* @author wangxy
* @version JDK 8
* @className BackupController
* @date 2024/9/13
* @description
*/
@Controller
@RequestMapping("/monitor/backup")
public class BackupController extends BaseController {
private String prefix = "/monitor/backup";
@RequiresPermissions("monitor:backup:view")
@GetMapping()
public String backData() {
return prefix + "/backup";
}
@GetMapping("backups")
@ResponseBody
public AjaxResult backups(@RequestParam String username,
@RequestParam String password,
@RequestParam String hostname,
@RequestParam String port,
@RequestParam String databaseName) {
String sqlFileName = RuoYiConfig.getDataBaseBackUp() + ".sql";
File file = new File(File.separator + sqlFileName);
//目录生成
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
try {
ProcessBuilder processBuilder = new ProcessBuilder("pg_dump", "-Fp", "-f", sqlFileName,
"\"host=" + hostname, "port=" + port, "user=" + username, "password=" + password, "dbname=" + databaseName + "\"");
Process process = processBuilder.start();
if (process.waitFor() == 0) {
return AjaxResult.success("备份成功!");
} else {
return AjaxResult.error("备份失败!");
}
} catch (Exception e) {
e.printStackTrace();
return AjaxResult.error("备份失败!");
}
}
}

@ -1,77 +1,25 @@
package com.ruoyi.web.controller.monitor;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ZipUtil;
import cn.hutool.system.OsInfo;
import cn.hutool.system.SystemUtil;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.domain.AjaxResult;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.ruoyi.common.core.controller.BaseController;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* druid
*
*
* @author ruoyi
*/
@Controller
@RequestMapping("/monitor/data")
public class DruidController extends BaseController
{
public class DruidController extends BaseController {
private String prefix = "/druid";
@RequiresPermissions("monitor:data:view")
@GetMapping()
public String index()
{
public String index() {
return redirect(prefix + "/index.html");
}
@GetMapping("backups")
@ResponseBody
public AjaxResult backups(@RequestParam String username,
@RequestParam String password,
@RequestParam String hostname,
@RequestParam String port,
@RequestParam String databaseName) {
String sqlFileName = RuoYiConfig.getDataBaseBackUp() + ".sql";
File file = new File(File.separator + sqlFileName);
//目录生成
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
try {
ProcessBuilder processBuilder = new ProcessBuilder("pg_dump", "-Fp", "-f", sqlFileName,
"\"host="+hostname, "port="+port, "user="+username, "password="+password, "dbname="+databaseName+"\"");
Process process = processBuilder.start();
if (process.waitFor() == 0) {
return AjaxResult.success("备份成功!");
} else {
return AjaxResult.error("备份失败!");
}
} catch (Exception e) {
e.printStackTrace();
return AjaxResult.error("备份失败!");
}
}
}

Loading…
Cancel
Save