* Fix upgrade bug.

This commit is contained in:
songchenxuan
2023-08-21 17:25:44 +08:00
parent 05fe19e88d
commit 6ed40ab5f9
2 changed files with 13 additions and 9 deletions
+4 -4
View File
@@ -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;
+9 -5
View File
@@ -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);
}
/**