* [perf story #64139] Adjust for exists fields.

This commit is contained in:
wangyidong
2024-09-05 10:32:05 +08:00
committed by 孙广明
parent e921f06b14
commit f5aaf51cc7
+14 -10
View File
@@ -9906,16 +9906,20 @@ class upgradeModel extends model
if(isset($flowTableDesc[$flow->table][$field]))
{
$tableDesc = $flowTableDesc[$flow->table];
if(isset($tableDesc["{$field}_1"])) $this->dao->exec("ALTER TABLE {$flow->table} DROP `{$field}_1`");
$fieldDesc = $tableDesc[$field];
$changeSQL = "ALTER TABLE {$flow->table} CHANGE `{$field}` `{$field}_1` {$fieldDesc['Type']}";
$changeSQL .= strtolower($fieldDesc['Null']) == 'no' ? " NOT NULL" : " NULL";
$changeSQL .= " DEFAULT '{$fieldDesc['Default']}'";
$this->dao->exec($changeSQL);
$this->dao->delete()->from(TABLE_WORKFLOWFIELD)->where('module')->eq($flow->module)->andWhere('field')->eq("{$field}_1")->exec();
$this->dao->update(TABLE_WORKFLOWFIELD)->set('field')->eq("{$field}_1")->where('module')->eq($flow->module)->andWhere('field')->eq($field)->exec();
if(isset($tableDesc["{$field}_1"]))
{
$this->dao->exec("ALTER TABLE {$flow->table} DROP `{$field}`");
$this->dao->delete()->from(TABLE_WORKFLOWFIELD)->where('module')->eq($flow->module)->andWhere('field')->eq("{$field}")->exec();
}
else
{
$fieldDesc = $tableDesc[$field];
$changeSQL = "ALTER TABLE {$flow->table} CHANGE `{$field}` `{$field}_1` {$fieldDesc['Type']}";
$changeSQL .= strtolower($fieldDesc['Null']) == 'no' ? " NOT NULL" : " NULL";
$changeSQL .= " DEFAULT '{$fieldDesc['Default']}'";
$this->dao->exec($changeSQL);
$this->dao->update(TABLE_WORKFLOWFIELD)->set('field')->eq("{$field}_1")->where('module')->eq($flow->module)->andWhere('field')->eq($field)->exec();
}
}
$this->dao->exec(str_replace('%table%', $flow->table, $addSQL));