Files

76 lines
2.9 KiB
PHP

<?php
/*
+-------------------------------------------------------------------------+
| Copyright (C) 2004-2026 The Cacti Group |
| |
| This program is free software; you can redistribute it and/or |
| modify it under the terms of the GNU General Public License |
| as published by the Free Software Foundation; either version 2 |
| of the License, or (at your option) any later version. |
| |
| This program is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU General Public License for more details. |
+-------------------------------------------------------------------------+
| Cacti: The Complete RRDTool-based Graphing Solution |
+-------------------------------------------------------------------------+
| This code is designed, written, and maintained by the Cacti Group. See |
| about.php and/or the AUTHORS file for specific developer information. |
+-------------------------------------------------------------------------+
| http://www.cacti.net/ |
+-------------------------------------------------------------------------+
*/
function upgrade_to_1_2_26() : void {
db_install_execute("ALTER TABLE `settings` MODIFY `value` varchar(4096) not null default ''");
db_install_execute("ALTER TABLE `settings_user` MODIFY `value` varchar(4096) not null default ''");
// rerun this function just in case for some reason it was missed
$duplicates = db_install_fetch_assoc('SELECT hex, COUNT(*) AS totals
FROM colors
GROUP BY hex
HAVING totals > 1');
if (cacti_sizeof($duplicates['data'])) {
$duplicates = $duplicates['data'];
foreach ($duplicates as $duplicate) {
$hexes_results = db_install_fetch_assoc('SELECT id, hex
FROM colors
WHERE hex = ?
ORDER BY id ASC',
[$duplicate['hex']], true);
$hexes = $hexes_results['data'];
$first = true;
$keephex = 0;
foreach ($hexes as $hex) {
if ($first) {
$keephex = $hex['id'];
$first = false;
} else {
db_install_execute('UPDATE graph_templates_item
SET color_id = ?
WHERE color_id = ?',
[$keephex, $hex['id']]);
if (db_table_exists('color_template_items')) {
db_install_execute('UPDATE color_template_items
SET color_id = ?
WHERE color_id = ?',
[$keephex, $hex['id']]);
}
db_install_execute('DELETE FROM colors WHERE id = ?', [$hex['id']]);
}
}
}
if (!db_index_exists('colors', 'hex')) {
db_install_add_key('colors', 'UNIQUE INDEX', 'hex', ['hex']);
}
}
}