From 0ce2b35004f4c31f1d3d95c09ca5f39ce068a21e Mon Sep 17 00:00:00 2001 From: wangyidong Date: Thu, 4 Aug 2022 11:51:03 +0800 Subject: [PATCH] * fix for change table engine for upgrade. --- db/update17.4.sql | 197 --------------------------------------- module/upgrade/model.php | 10 +- 2 files changed, 9 insertions(+), 198 deletions(-) diff --git a/db/update17.4.sql b/db/update17.4.sql index 0b52eaead8..7c5362f489 100644 --- a/db/update17.4.sql +++ b/db/update17.4.sql @@ -1,202 +1,5 @@ ALTER TABLE `zt_story` ADD COLUMN `linkRequirements` varchar(255) NOT NULL AFTER `linkStories`; -ALTER TABLE `zt_acl` ENGINE='InnoDB'; -ALTER TABLE `zt_action` ENGINE='InnoDB'; -ALTER TABLE `zt_api_lib_release` ENGINE='InnoDB'; -ALTER TABLE `zt_api` ENGINE='InnoDB'; -ALTER TABLE `zt_apispec` ENGINE='InnoDB'; -ALTER TABLE `zt_apistruct` ENGINE='InnoDB'; -ALTER TABLE `zt_apistruct_spec` ENGINE='InnoDB'; -ALTER TABLE `zt_approval` ENGINE='InnoDB'; -ALTER TABLE `zt_approvalflow` ENGINE='InnoDB'; -ALTER TABLE `zt_approvalflowobject` ENGINE='InnoDB'; -ALTER TABLE `zt_approvalflowspec` ENGINE='InnoDB'; -ALTER TABLE `zt_approvalnode` ENGINE='InnoDB'; -ALTER TABLE `zt_approvalobject` ENGINE='InnoDB'; -ALTER TABLE `zt_approvalrole` ENGINE='InnoDB'; -ALTER TABLE `zt_block` ENGINE='InnoDB'; -ALTER TABLE `zt_branch` ENGINE='InnoDB'; -ALTER TABLE `zt_bug` ENGINE='InnoDB'; -ALTER TABLE `zt_build` ENGINE='InnoDB'; -ALTER TABLE `zt_burn` ENGINE='InnoDB'; -ALTER TABLE `zt_case` ENGINE='InnoDB'; -ALTER TABLE `zt_casestep` ENGINE='InnoDB'; -ALTER TABLE `zt_cfd` ENGINE='InnoDB'; -ALTER TABLE `zt_company` ENGINE='InnoDB'; -ALTER TABLE `zt_compile` ENGINE='InnoDB'; -ALTER TABLE `zt_config` ENGINE='InnoDB'; -ALTER TABLE `zt_cron` ENGINE='InnoDB'; -ALTER TABLE `zt_dept` ENGINE='InnoDB'; -ALTER TABLE `zt_design` ENGINE='InnoDB'; -ALTER TABLE `zt_designspec` ENGINE='InnoDB'; -ALTER TABLE `zt_doc` ENGINE='InnoDB'; -ALTER TABLE `zt_doccontent` ENGINE='InnoDB'; -ALTER TABLE `zt_doclib` ENGINE='InnoDB'; -ALTER TABLE `zt_effort` ENGINE='InnoDB'; -ALTER TABLE `zt_entry` ENGINE='InnoDB'; -ALTER TABLE `zt_expect` ENGINE='InnoDB'; -ALTER TABLE `zt_extension` ENGINE='InnoDB'; -ALTER TABLE `zt_file` ENGINE='InnoDB'; -ALTER TABLE `zt_group` ENGINE='InnoDB'; -ALTER TABLE `zt_grouppriv` ENGINE='InnoDB'; -ALTER TABLE `zt_holiday` ENGINE='InnoDB'; -ALTER TABLE `zt_history` ENGINE='InnoDB'; -ALTER TABLE `zt_job` ENGINE='InnoDB'; -ALTER TABLE `zt_kanbanspace` ENGINE='InnoDB'; -ALTER TABLE `zt_kanban` ENGINE='InnoDB'; -ALTER TABLE `zt_kanbanregion` ENGINE='InnoDB'; -ALTER TABLE `zt_kanbancard` ENGINE='InnoDB'; -ALTER TABLE `zt_kanbancell` ENGINE='InnoDB'; -ALTER TABLE `zt_kanbangroup` ENGINE='InnoDB'; -ALTER TABLE `zt_kanbanlane` ENGINE='InnoDB'; -ALTER TABLE `zt_kanbancolumn` ENGINE='InnoDB'; -ALTER TABLE `zt_lang` ENGINE='InnoDB'; -ALTER TABLE `zt_log` ENGINE='InnoDB'; -ALTER TABLE `zt_module` ENGINE='InnoDB'; -ALTER TABLE `zt_mr` ENGINE='InnoDB'; -ALTER TABLE `zt_mrapproval` ENGINE='InnoDB'; -ALTER TABLE `zt_notify` ENGINE='InnoDB'; -ALTER TABLE `zt_oauth` ENGINE='InnoDB'; -ALTER TABLE `zt_pipeline` ENGINE='InnoDB'; -ALTER TABLE `zt_planstory` ENGINE='InnoDB'; -ALTER TABLE `zt_product` ENGINE='InnoDB'; -ALTER TABLE `zt_productplan` ENGINE='InnoDB'; -ALTER TABLE `zt_project` ENGINE='InnoDB'; -ALTER TABLE `zt_projectadmin` ENGINE='InnoDB'; -ALTER TABLE `zt_projectcase` ENGINE='InnoDB'; -ALTER TABLE `zt_projectproduct` ENGINE='InnoDB'; -ALTER TABLE `zt_projectspec` ENGINE='InnoDB'; -ALTER TABLE `zt_projectstory` ENGINE='InnoDB'; -ALTER TABLE `zt_relation` ENGINE='InnoDB'; -ALTER TABLE `zt_release` ENGINE='InnoDB'; -ALTER TABLE `zt_repo` ENGINE='InnoDB'; -ALTER TABLE `zt_repobranch` ENGINE='InnoDB'; -ALTER TABLE `zt_repofiles` ENGINE='InnoDB'; -ALTER TABLE `zt_repohistory` ENGINE='InnoDB'; -ALTER TABLE `zt_score` ENGINE='InnoDB'; -ALTER TABLE `zt_searchdict` ENGINE='InnoDB'; -ALTER TABLE `zt_stage` ENGINE='InnoDB'; -ALTER TABLE `zt_stakeholder` ENGINE='InnoDB'; -ALTER TABLE `zt_story` ENGINE='InnoDB'; -ALTER TABLE `zt_storyreview` ENGINE='InnoDB'; -ALTER TABLE `zt_storyestimate` ENGINE='InnoDB'; -ALTER TABLE `zt_storyspec` ENGINE='InnoDB'; -ALTER TABLE `zt_storystage` ENGINE='InnoDB'; -ALTER TABLE `zt_suitecase` ENGINE='InnoDB'; -ALTER TABLE `zt_task` ENGINE='InnoDB'; -ALTER TABLE `zt_taskestimate` ENGINE='InnoDB'; -ALTER TABLE `zt_taskspec` ENGINE='InnoDB'; -ALTER TABLE `zt_team` ENGINE='InnoDB'; -ALTER TABLE `zt_testreport` ENGINE='InnoDB'; -ALTER TABLE `zt_testresult` ENGINE='InnoDB'; -ALTER TABLE `zt_testrun` ENGINE='InnoDB'; -ALTER TABLE `zt_testsuite` ENGINE='InnoDB'; -ALTER TABLE `zt_testtask` ENGINE='InnoDB'; -ALTER TABLE `zt_todo` ENGINE='InnoDB'; -ALTER TABLE `zt_user` ENGINE='InnoDB'; -ALTER TABLE `zt_usercontact` ENGINE='InnoDB'; -ALTER TABLE `zt_usergroup` ENGINE='InnoDB'; -ALTER TABLE `zt_userquery` ENGINE='InnoDB'; -ALTER TABLE `zt_usertpl` ENGINE='InnoDB'; -ALTER TABLE `zt_userview` ENGINE='InnoDB'; -ALTER TABLE `zt_weeklyreport` ENGINE='InnoDB'; -ALTER TABLE `zt_webhook` ENGINE='InnoDB'; -ALTER TABLE `zt_im_chat` ENGINE='InnoDB'; -ALTER TABLE `zt_im_chatuser` ENGINE='InnoDB'; -ALTER TABLE `zt_im_client` ENGINE='InnoDB'; -ALTER TABLE `zt_im_message` ENGINE='InnoDB'; -ALTER TABLE `zt_im_message_backup` ENGINE='InnoDB'; -ALTER TABLE `zt_im_message_index` ENGINE='InnoDB'; -ALTER TABLE `zt_im_chat_message_index` ENGINE='InnoDB'; -ALTER TABLE `zt_im_messagestatus` ENGINE='InnoDB'; -ALTER TABLE `zt_im_queue` ENGINE='InnoDB'; -ALTER TABLE `zt_im_conference` ENGINE='InnoDB'; -ALTER TABLE `zt_im_conferenceaction` ENGINE='InnoDB'; -ALTER TABLE `zt_im_userdevice` ENGINE='InnoDB'; -ALTER TABLE `zt_relationoftasks` ENGINE='InnoDB'; -ALTER TABLE `zt_report` ENGINE='InnoDB'; -ALTER TABLE `zt_feedback` ENGINE='InnoDB'; -ALTER TABLE `zt_feedbackview` ENGINE='InnoDB'; -ALTER TABLE `zt_serverroom` ENGINE='InnoDB'; -ALTER TABLE `zt_account` ENGINE='InnoDB'; -ALTER TABLE `zt_asset` ENGINE='InnoDB'; -ALTER TABLE `zt_host` ENGINE='InnoDB'; -ALTER TABLE `zt_service` ENGINE='InnoDB'; -ALTER TABLE `zt_attend` ENGINE='InnoDB'; -ALTER TABLE `zt_attendstat` ENGINE='InnoDB'; -ALTER TABLE `zt_overtime` ENGINE='InnoDB'; -ALTER TABLE `zt_holiday` ENGINE='InnoDB'; -ALTER TABLE `zt_leave` ENGINE='InnoDB'; -ALTER TABLE `zt_lieu` ENGINE='InnoDB'; -ALTER TABLE `zt_trip` ENGINE='InnoDB'; -ALTER TABLE `zt_deploy` ENGINE='InnoDB'; -ALTER TABLE `zt_deployproduct` ENGINE='InnoDB'; -ALTER TABLE `zt_deploystep` ENGINE='InnoDB'; -ALTER TABLE `zt_deployscope` ENGINE='InnoDB'; -ALTER TABLE `zt_vm` ENGINE='InnoDB'; -ALTER TABLE `zt_baseimage` ENGINE='InnoDB'; -ALTER TABLE `zt_vmtemplate` ENGINE='InnoDB'; -ALTER TABLE `zt_browser` ENGINE='InnoDB'; -ALTER TABLE `zt_baseimagebrowser` ENGINE='InnoDB'; -ALTER TABLE `zt_traincourse` ENGINE='InnoDB'; -ALTER TABLE `zt_traincontents` ENGINE='InnoDB'; -ALTER TABLE `zt_traincategory` ENGINE='InnoDB'; -ALTER TABLE `zt_trainrecords` ENGINE='InnoDB'; -ALTER TABLE `zt_faq` ENGINE='InnoDB'; -ALTER TABLE `zt_domain` ENGINE='InnoDB'; -ALTER TABLE `zt_workflow` ENGINE='InnoDB'; -ALTER TABLE `zt_workflowaction` ENGINE='InnoDB'; -ALTER TABLE `zt_workflowdatasource` ENGINE='InnoDB'; -ALTER TABLE `zt_workflowfield` ENGINE='InnoDB'; -ALTER TABLE `zt_workflowlayout` ENGINE='InnoDB'; -ALTER TABLE `zt_workflowlabel` ENGINE='InnoDB'; -ALTER TABLE `zt_workflowlinkdata` ENGINE='InnoDB'; -ALTER TABLE `zt_workflowrelation` ENGINE='InnoDB'; -ALTER TABLE `zt_workflowrelationlayout` ENGINE='InnoDB'; -ALTER TABLE `zt_workflowrule` ENGINE='InnoDB'; -ALTER TABLE `zt_workflowsql` ENGINE='InnoDB'; -ALTER TABLE `zt_workflowversion` ENGINE='InnoDB'; -ALTER TABLE `zt_workflowreport` ENGINE='InnoDB'; -ALTER TABLE `zt_durationestimation` ENGINE='InnoDB'; -ALTER TABLE `zt_workestimation` ENGINE='InnoDB'; -ALTER TABLE `zt_intervention` ENGINE='InnoDB'; -ALTER TABLE `zt_activity` ENGINE='InnoDB'; -ALTER TABLE `zt_auditcl` ENGINE='InnoDB'; -ALTER TABLE `zt_auditplan` ENGINE='InnoDB'; -ALTER TABLE `zt_auditresult` ENGINE='InnoDB'; -ALTER TABLE `zt_nc` ENGINE='InnoDB'; -ALTER TABLE `zt_zoutput` ENGINE='InnoDB'; -ALTER TABLE `zt_process` ENGINE='InnoDB'; -ALTER TABLE `zt_programactivity` ENGINE='InnoDB'; -ALTER TABLE `zt_programoutput` ENGINE='InnoDB'; -ALTER TABLE `zt_programprocess` ENGINE='InnoDB'; -ALTER TABLE `zt_basicmeas` ENGINE='InnoDB'; -ALTER TABLE `zt_budget` ENGINE='InnoDB'; -ALTER TABLE `zt_researchplan` ENGINE='InnoDB'; -ALTER TABLE `zt_researchreport` ENGINE='InnoDB'; -ALTER TABLE `zt_meeting` ENGINE='InnoDB'; -ALTER TABLE `zt_meetingroom` ENGINE='InnoDB'; -ALTER TABLE `zt_assetlib` ENGINE='InnoDB'; -ALTER TABLE `zt_meastemplate` ENGINE='InnoDB'; -ALTER TABLE `zt_programreport` ENGINE='InnoDB'; -ALTER TABLE `zt_measrecords` ENGINE='InnoDB'; -ALTER TABLE `zt_object` ENGINE='InnoDB'; -ALTER TABLE `zt_review` ENGINE='InnoDB'; -ALTER TABLE `zt_reviewcl` ENGINE='InnoDB'; -ALTER TABLE `zt_reviewresult` ENGINE='InnoDB'; -ALTER TABLE `zt_reviewissue` ENGINE='InnoDB'; -ALTER TABLE `zt_reviewlist` ENGINE='InnoDB'; -ALTER TABLE `zt_cmcl` ENGINE='InnoDB'; -ALTER TABLE `zt_solutions` ENGINE='InnoDB'; -ALTER TABLE `zt_measqueue` ENGINE='InnoDB'; -ALTER TABLE `zt_issue` ENGINE='InnoDB'; -ALTER TABLE `zt_risk` ENGINE='InnoDB'; -ALTER TABLE `zt_riskissue` ENGINE='InnoDB'; -ALTER TABLE `zt_opportunity` ENGINE='InnoDB'; -ALTER TABLE `zt_trainplan` ENGINE='InnoDB'; -ALTER TABLE `zt_gapanalysis` ENGINE='InnoDB'; -ALTER TABLE `zt_sqlview` ENGINE='InnoDB'; - ALTER TABLE `zt_searchindex` ADD FULLTEXT `title_content` (`title`, `content`); ALTER TABLE `zt_searchindex` DROP INDEX `title`; ALTER TABLE `zt_searchindex` DROP INDEX `content`; diff --git a/module/upgrade/model.php b/module/upgrade/model.php index 617d122cfe..f6249c9ae5 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -6757,7 +6757,15 @@ class upgradeModel extends model public function changeTableEngine() { $mysqlVersion = $this->loadModel('install')->getMysqlVersion(); - if($mysqlVersion >= 5.6) $this->dao->exec("ALTER TABLE " . TABLE_SEARCHINDEX . " ENGINE='InnoDB'"); + $tables = $this->dao->query("SHOW TABLE STATUS WHERE `Engine` is not null AND `Engine` = 'MyISAM'")->fetchAll(); + foreach($tables as $table) + { + $tableName = $table->Name; + $sql = "ALTER TABLE `$tableName` ENGINE='InnoDB'"; + + if(stripos($tableName, 'searchindex') !== false and $mysqlVersion < 5.6) continue; + $this->dao->exec($sql); + } return true; }