From 53b3ae8016e321eaee13d9b94118f2e74a7cc29f Mon Sep 17 00:00:00 2001 From: Denis Flaven Date: Wed, 14 Mar 2012 16:15:53 +0000 Subject: [PATCH] Enhanced fix for Trac #503. Don't drop the column before re-creating it, in case the data can be converted by MySQL. SVN:1.2[1892] --- synchro/synchrodatasource.class.inc.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) 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();