Index: trunk/admin/install/upgrades/inportal_upgrade_v1.2.1.php =================================================================== diff -u -N -r5250 -r6093 --- trunk/admin/install/upgrades/inportal_upgrade_v1.2.1.php (.../inportal_upgrade_v1.2.1.php) (revision 5250) +++ trunk/admin/install/upgrades/inportal_upgrade_v1.2.1.php (.../inportal_upgrade_v1.2.1.php) (revision 6093) @@ -1,11 +1,43 @@ recallObject('kMultiLanguage'); - $table_name = $this->Application->getUnitOption('c', 'TableName'); - + $table_name = $application->getUnitOption('c', 'TableName'); + $sql = 'UPDATE '.$table_name.' SET '.$ml_formatter->LangFieldName('Name').' = Name, '.$ml_formatter->LangFieldName('Description').' = Description'; $application->Conn->Query($sql); + + // locating possible duplicate records in CategoryItems + $query = 'SELECT CategoryId, ItemResourceId, COUNT(*) AS Dups + FROM '.TABLE_PREFIX.'CategoryItems + GROUP BY CategoryId, ItemResourceId + HAVING Dups > 1'; + + $dups = $application->Conn->Query($query); + + // removing duplicate records + foreach ($dups as $a_dup) { + $query = 'DELETE FROM '.TABLE_PREFIX.'CategoryItems + WHERE + CategoryId = '.$query['CategoryId'].' + AND + ItemResourceId = '.$query['ItemResourceId'].' + LIMIT '.($query['Dups'] - 1); + $application->Conn->Query($query); + + } + + // creating unique index + $queries[] = 'ALTER TABLE `'.TABLE_PREFIX.'CategoryItems` DROP INDEX `CategoryId` '; + $queries[] = 'ALTER TABLE `'.TABLE_PREFIX.'CategoryItems` DROP INDEX `ItemResourceId` '; + $queries[] = 'ALTER TABLE `'.TABLE_PREFIX.'CategoryItems` ADD UNIQUE ( `CategoryId` , `ItemResourceId` )'; + $queries[] = 'ALTER TABLE `'.TABLE_PREFIX.'CategoryItems` ADD INDEX ( `Filename` ) '; + $queries[] = 'ALTER TABLE `'.TABLE_PREFIX.'CategoryItems` ADD INDEX ( `ItemPrefix` ) '; + + foreach ($queries as $query) { + $application->Conn->Query($query); + } + ?> \ No newline at end of file