test_lgq/niucloud/app/service/admin/upgrade/RestoreService.php

60 lines
2.1 KiB
PHP
Raw Normal View History

2024-01-24 17:36:08 +08:00
<?php
// +----------------------------------------------------------------------
// | Niucloud-admin 企业快速开发的saas管理平台
// +----------------------------------------------------------------------
// | 官方网址https://www.niucloud-admin.com
// +----------------------------------------------------------------------
// | niucloud团队 版权所有 开源版本可自由商用
// +----------------------------------------------------------------------
// | Author: Niucloud Team
// +----------------------------------------------------------------------
namespace app\service\admin\upgrade;
use core\util\DbBackup;
/**
* 框架及插件升级恢复备份
* @package app\service\core\upgrade
*/
class RestoreService extends UpgradeService
{
/**
* 恢复代码备份
* @return true
*/
public function restoreCode() {
$backup_dir = $this->upgrade_dir .$this->upgrade_task['key'] . DIRECTORY_SEPARATOR . 'backup' . DIRECTORY_SEPARATOR . 'code' . DIRECTORY_SEPARATOR;
if (is_dir($backup_dir)) {
// 删除前端文件
if (is_dir(public_path() . 'admin')) del_target_dir(public_path() . 'admin', true);
if (is_dir(public_path() . 'wap')) del_target_dir(public_path() . 'wap', true);
if (is_dir(public_path() . 'web')) del_target_dir(public_path() . 'web', true);
dir_copy($backup_dir, $this->root_path);
}
return true;
}
/**
* 恢复数据库备份
* @return true
*/
public function restoreSql() {
$backup_dir = $this->upgrade_dir .$this->upgrade_task['key'] . DIRECTORY_SEPARATOR . 'backup' . DIRECTORY_SEPARATOR . 'sql' . DIRECTORY_SEPARATOR;
if (is_dir($backup_dir)) {
$db = new DbBackup([
'path' => $backup_dir //数据库备份路径
]);
$file_list = $db->fileList();
if (!empty($file_list)) {
foreach ($file_list as $file) {
$db->setFile($file)->import(0, $file['time']);
}
}
}
return true;
}
}