diff --git a/synchro/synchrodatasource.class.inc.php b/synchro/synchrodatasource.class.inc.php index 63a2fff4cd..9480195510 100644 --- a/synchro/synchrodatasource.class.inc.php +++ b/synchro/synchrodatasource.class.inc.php @@ -899,13 +899,18 @@ EOF { if (CMDBSource::IsField($sTable, $sAttCode)) { - $aRepairQueries[] = "ALTER TABLE `$sTable` DROP COLUMN `$sAttCode`;"; + $aRepairQueries[] = "ALTER TABLE `$sTable` CHANGE `$sAttCode` `$sAttCode` $sColumnDef"; + } + else + { + $aFieldDefs[] = "`$sAttCode` $sColumnDef"; } - $aFieldDefs[] = "`$sAttCode` $sColumnDef"; } - - $aRepairQueries[] = "ALTER TABLE `$sTable` ADD (".implode(',', $aFieldDefs).");"; + if (count($aFieldDefs) > 0) + { + $aRepairQueries[] = "ALTER TABLE `$sTable` ADD (".implode(',', $aFieldDefs).");"; + } // The triggers as well must be adjusted $aTriggersDefs = $this->GetTriggersDefinition();