diff --git a/db/update18.5.sql b/db/update18.5.sql index 8bfdc29616..9072ad19c7 100644 --- a/db/update18.5.sql +++ b/db/update18.5.sql @@ -64,14 +64,14 @@ CREATE INDEX `objectID` ON `zt_actionrecent`(`objectID`); ALTER TABLE `zt_notify` ADD `toListCopy` text NULL; UPDATE `zt_notify` SET `toListCopy` = `toList`; ALTER TABLE `zt_notify` DROP `toList`; -ALTER TABLE `zt_notify` CHANGE COLUMN `toListCopy` `toList`; +ALTER TABLE `zt_notify` CHANGE COLUMN `toListCopy` `toList` text; ALTER TABLE `zt_notify` ADD `subjectCopy` text NULL; UPDATE `zt_notify` SET `subjectCopy` = `subject`; ALTER TABLE `zt_notify` DROP `subject`; -ALTER TABLE `zt_notify` CHANGE COLUMN `subjectCopy` `subject`; +ALTER TABLE `zt_notify` CHANGE COLUMN `subjectCopy` `subject` text; -DROP INDEX `objectType_toList_status` ON `zt_notify`; +DROP INDEX IF EXISTS `objectType_toList_status` ON `zt_notify`; CREATE INDEX `objectType` ON `zt_notify` (`objectType`); CREATE INDEX `status` ON `zt_notify` (`status`); @@ -92,4 +92,4 @@ UPDATE `zt_programoutput` SET `activity` = (SELECT `activity` FROM `zt_zoutput` ALTER TABLE `zt_reviewissue` ADD `opinionCopy` mediumtext NULL; UPDATE `zt_reviewissue` SET `opinionCopy` = `opinion`; ALTER TABLE `zt_reviewissue` DROP `opinion`; -ALTER TABLE `zt_reviewissue` CHANGE COLUMN `opinionCopy` `opinion`; +ALTER TABLE `zt_reviewissue` CHANGE COLUMN `opinionCopy` `opinion` text; diff --git a/lib/dbh/dbh.class.php b/lib/dbh/dbh.class.php index 246cc41b49..b2bd2f341c 100644 --- a/lib/dbh/dbh.class.php +++ b/lib/dbh/dbh.class.php @@ -257,8 +257,12 @@ class dbh { $sql = trim($sql); $sql = $this->formatFunction($sql); - $sql = $this->processDmChangeColumn($sql); - $sql = $this->processDmTableIndex($sql); + + if(defined('IN_UPGRADE')) + { + $sql = $this->processDmChangeColumn($sql); + $sql = $this->processDmTableIndex($sql); + } $actionPos = strpos($sql, ' '); $action = strtoupper(substr($sql, 0, $actionPos)); @@ -381,8 +385,8 @@ class dbh */ public function processDmTableIndex($sql) { - if(strpos($sql, 'DROP INDEX') === FALSE) return $sql; - return preg_replace('/DROP INDEX `(\w+)` ON `zt_(\w+)`/', 'DROP INDEX `$2_$1`', $sql); + if(strpos($sql, 'DROP INDEX IF EXISTS') === FALSE) return $sql; + return preg_replace('/DROP INDEX IF EXISTS `(\w+)` ON `zt_(\w+)`/', 'DROP INDEX IF EXISTS `$2_$1`', $sql); } /** @@ -395,7 +399,7 @@ class dbh public function processDmChangeColumn($sql) { if(strpos($sql, 'CHANGE COLUMN') === FALSE) return $sql; - return preg_replace('/ALTER TABLE `([^`]+)` CHANGE COLUMN `([^`]+)` `([^`]+)`/', 'ALTER TABLE `$1` RENAME COLUMN `$2` TO `$3`;', $sql); + return preg_replace('/ALTER TABLE `([^`]+)` CHANGE COLUMN `([^`]+)` `([^`]+)` (\w+)/', 'ALTER TABLE `$1` RENAME COLUMN `$2` TO `$3`;', $sql); } /**