完善数据库结构更新方法

This commit is contained in:
wispx
2018-12-29 11:11:59 +08:00
parent b259352dee
commit 3ffa6fb8bc
6 changed files with 35 additions and 14 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
[APP]
NAME = Lsky Pro
DEBUG = true
DEBUG = false
TRACE = false
+34 -1
View File
@@ -205,14 +205,46 @@ EOT;
$config['database'],
$config['hostport']
);
if ($mysqli->connect_error) {
if ($mysqli->connect_errno) {
$mysqli->close();
throw new Exception($mysqli->connect_error);
}
$mysqli->autocommit(false);
$mysqli->select_db($config['database']);
$mysqli->query("SET NAMES utf8");
// 新建表字段
$tableFields = [
'lsky_images' => [
'folder_id' => 'ALTER TABLE `lsky_images` ADD `folder_id` INT NOT NULL DEFAULT \'0\' COMMENT \'文件夹ID\' AFTER `user_id`;'
]
];
foreach ($tableFields as $table => $fields) {
foreach ($fields as $field => $sql) {
$fetchFields = $mysqli->query("DESCRIBE `{$table}`;");
// 判断字段是否已存在
$flag = true;
foreach ($fetchFields as $fetchField) {
if ($field == $fetchField['Field']) {
$flag = false;
}
}
if ($flag) {
if (!$mysqli->query($sql)) {
throw new Exception($mysqli->error);
}
}
}
}
if (!$mysqli->multi_query($file)) {
throw new Exception('数据写入失败');
}
$mysqli->commit();
$mysqli->autocommit(true);
$mysqli->close();
}
$code = 1;
$msg = '更新成功,返回<a href="/">首页</a>';
@@ -223,6 +255,7 @@ EOT;
}
}
} catch (Exception $e) {
$mysqli->rollback();
$code = 0;
$msg = $e->getMessage();
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

-12
View File
@@ -31,18 +31,6 @@ UPDATE `lsky_config` SET `value` = 'kodo' WHERE `lsky_config`.`value` = 'qiniu';
UPDATE `lsky_config` SET `value` = 'uss' WHERE `lsky_config`.`value` = 'upyun';
-- v1.4.1
DROP PROCEDURE IF EXISTS schema_change;
DELIMITER //
CREATE PROCEDURE schema_change() BEGIN
DECLARE {database} VARCHAR(100);
SELECT DATABASE() INTO {database};
IF NOT EXISTS(SELECT 1 FROM information_schema.columns where table_schema='{database}' and table_name='lsky_images' and COLUMN_NAME='folder_id') THEN
ALTER TABLE `lsky_images` ADD `folder_id` INT NOT NULL DEFAULT '0' COMMENT '文件夹ID' AFTER `user_id`;
END IF;
END//
DELIMITER ;
CALL schema_change();
CREATE TABLE IF NOT EXISTS `lsky_folders` (
`id` int(11) PRIMARY KEY AUTO_INCREMENT NOT NULL COMMENT 'ID',
`user_id` int(11) NOT NULL COMMENT '用户ID',