From 956deac89fa5958ccd76d0f4a4588bfdfd76eab3 Mon Sep 17 00:00:00 2001
From: HFO4 <912394456@qq.com>
Date: Sun, 11 Mar 2018 11:39:33 +0800
Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E5=8D=87=E7=BA=A7?=
=?UTF-8?q?=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
application/index/controller/Admin.php | 32 ++++++++++++++++++++++++
application/index/model/AdminHandler.php | 11 ++++++++
application/version.json | 2 +-
3 files changed, 44 insertions(+), 1 deletion(-)
diff --git a/application/index/controller/Admin.php b/application/index/controller/Admin.php
index bebe45de..f7380f13 100644
--- a/application/index/controller/Admin.php
+++ b/application/index/controller/Admin.php
@@ -29,12 +29,44 @@ class Admin extends Controller{
}
public function index(){
+ if($this->adminObj->checkDbVersion()){
+ $this->redirect(url('/Admin/UpdateDb','',''));
+ exit();
+ }
return view('admin_index', [
'options' => $this->siteOptions,
'statics' => $this->adminObj->getStatics(),
]);
}
+ public function UpdateDb(){
+ if(!$this->adminObj->checkDbVersion()){
+ $this->redirect(url('/Admin','',''));
+ exit();
+ }
+ echo "";
+ echo "准备升级数据库,当前数据库版本:".$this->adminObj->dbVerInfo["now"];
+ echo ", 目标数据库版本:".$this->adminObj->dbVerInfo["require"].";
";
+ $updatePath = ROOT_PATH . "update_".$this->adminObj->dbVerInfo["now"]."to".$this->adminObj->dbVerInfo["require"].".sql";
+ if(!file_exists($updatePath)){
+ die("数据库更新文件(".$updatePath.")不存在,升级中止.");
+ }
+ echo "获取升级SQL文件(".$updatePath.")
";
+ $updateContent = file_get_contents($updatePath);
+ echo "将执行以下指令:
";
+ echo "".htmlspecialchars($updateContent)."
";
+ $sqlSingle = explode(";", $updateContent);
+ foreach ($sqlSingle as $key => $value){
+ if(empty($value)){
+ continue;
+ }
+ if(!Db::execute($value)){
+ echo "执行$value 时出现错误
";
+ }
+ }
+ echo "升级完成,返回管理面板";
+ }
+
public function Setting(){
return view('basic_setting', [
'options' => $this->siteOptions,
diff --git a/application/index/model/AdminHandler.php b/application/index/model/AdminHandler.php
index bb3ebe19..0fa28a24 100644
--- a/application/index/model/AdminHandler.php
+++ b/application/index/model/AdminHandler.php
@@ -14,11 +14,22 @@ class AdminHandler extends Model{
public $pageNow;
public $pageTotal;
public $dataTotal;
+ public $dbVerInfo;
public function __construct($options){
$this->siteOptions = $options;
}
+ public function checkDbVersion(){
+ $versionInfo = json_decode(@file_get_contents(ROOT_PATH. "application/version.json"),true);
+ $dbVerNow = Option::getValue("database_version");
+ if(!isset($versionInfo["db_version"]) || $dbVerNow < (int)$versionInfo["db_version"]){
+ $this->dbVerInfo = array('now' => $dbVerNow, 'require' => $versionInfo["db_version"]);
+ return true;
+ }
+ return false;
+ }
+
public function getStatics(){
$statics["fileNum"] = Db::name('files')->count();
$statics["privateShareNum"] = Db::name('shares')->where("type","private")->count();
diff --git a/application/version.json b/application/version.json
index 3c509e4d..fcc78cb2 100644
--- a/application/version.json
+++ b/application/version.json
@@ -1 +1 @@
-{"type":"","version":"1.0.2","version_id":3}
\ No newline at end of file
+{"type":"","version":"1.0.2","version_id":3,"db_version":2}
\ No newline at end of file