TaskUpdateController.class.php 1.81 KB
<?php
/**
 * Created by PhpStorm.
 * User: xtong
 * Date: 17/9/1
 * Time: 17:39
 */
namespace Frontend\Controller\UpdateDB;

class TaskUpdateController extends AbstractController
{
    /**
     * 任务中心、线下培训上线所需数据字段变更
     * @author daijun
     * @date 2017-09-15
     */
    public function Index()
    {
        $sql = $this->_updateSql();
        if (empty($sql)) {
            exit('没有可升级的sql');
        }

        $db = \Think\Db::getInstance();
        try {
            $db->execute($sql);
        } catch (\Exception $e) {
            exit("数据库升级失败:" . $e->getMessage());
        }

        exit("数据库升级完成,执行sql如下:{$sql}");
    }

    /**
     * 待升级的sql
     *      1. oa_exam_paper(试卷详情表),增加字段exam_type
     *      2. oa_exam_paper(试卷详情表),增加索引exam_type
     *      3. oa_exam_answer(用户答卷表),增加字段 data_type、obj_id
     *      4. oa_exam_answer(用户答卷表),增加索引 obj_id
     * @author daijun
     * @return string
     */
    private function _updateSql()
    {
        $sql = "
             ALTER TABLE `oa_exam_paper` ADD `exam_type` TINYINT(1) NOT NULL DEFAULT '1' COMMENT '试卷类型(1:常规试卷,2:任务类,3:线下培训)' AFTER `ec_id`;
             ALTER TABLE `oa_exam_paper` ADD INDEX exam_type ( `exam_type`);
             ALTER TABLE `oa_exam_answer` ADD `data_type` TINYINT(1) NOT NULL DEFAULT '1' COMMENT '数据类型(1:常规试卷,2:任务类,3:线下培训)' AFTER `businessid`;
             ALTER TABLE `oa_exam_answer` ADD `obj_id` INT(10) NOT NULL DEFAULT '0' COMMENT '任务、培训ID' AFTER `businessid`;
             ALTER TABLE `oa_exam_answer` ADD INDEX obj_id ( `obj_id`);
        ";
        return $sql;
    }
}