<?php /** * Created by PhpStorm. * User: liyifei2012it * Date: 17/9/12 * Time: 18:25 */ namespace Frontend\Controller\UpdateDB; use Think\Db; class TrainController extends AbstractController { /** * 课程中心接入线下培训,数据库升级脚本 * @author liyifei * @date 2017-09-12 */ public function Index() { $sql = $this->_updateSql(); if (empty($sql)) { exit('没有可升级的sql'); } $db = &Db::getInstance(); try { $db->execute($sql); } catch (\Exception $e) { exit("数据库升级失败:" . $e->getMessage()); } exit("数据库升级完成,执行sql如下:{$sql}"); } /** * 待升级的sql * 1、升级oa_course_article(课程主表),修改course_type说明; * 2、升级oa_course_exam(课程测评结果记录表),增加plan_id、ed_id字段; * 3、升级oa_course_study_record(课程学习记录表),增加plan_id、ed_id字段; * 4、升级oa_course_study(课程已学人员表),增加plan_id、ed_id字段; * @author liyifei * @return string */ private function _updateSql() { $sql = ''; $DbServ = &Db::getInstance(); // 1、升级oa_course_article(课程主表),修改course_type说明; $sql .= "ALTER TABLE `oa_course_article` CHANGE COLUMN `course_type` `course_type` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1' COMMENT '课程类别(1=常规课程;2=任务类课程;3=线下培训类课程)';"; // 2、升级oa_course_exam(课程测评结果记录表),增加plan_id、ed_id字段; $rowExam = $DbServ->query("SELECT * FROM `oa_course_exam` LIMIT 1"); if (!empty($rowExam) && !isset($rowExam['plan_id']) && !isset($rowExam['ed_id'])) { $sql .= "ALTER TABLE `oa_course_exam` ADD COLUMN `plan_id` INT(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '培训计划ID' AFTER `customtask_id`, ADD COLUMN `ed_id` INT(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '培训ID' AFTER `plan_id`;"; } // 3、升级oa_course_study_record(课程学习记录表),增加plan_id、ed_id字段; $rowRecord = $DbServ->query("SELECT * FROM `oa_course_study_record` LIMIT 1"); if (!empty($rowRecord) && !isset($rowRecord['plan_id']) && !isset($rowRecord['ed_id'])) { $sql .= "ALTER TABLE `oa_course_study_record` ADD COLUMN `plan_id` INT(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '培训计划ID' AFTER `customtask_id`, ADD COLUMN `ed_id` INT(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '培训ID' AFTER `plan_id`;"; } // 4、升级oa_course_study(课程已学人员表),增加plan_id、ed_id字段; $rowStudy = $DbServ->query("SELECT * FROM `oa_course_study` LIMIT 1"); if (!empty($rowStudy) && !isset($rowStudy['plan_id']) && !isset($rowStudy['ed_id'])) { $sql .= "ALTER TABLE `oa_course_study` ADD COLUMN `plan_id` INT(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '培训计划ID' AFTER `customtask_id`, ADD COLUMN `ed_id` INT(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '培训ID' AFTER `plan_id`;"; } return $sql; } }