View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
1999 | RackTables | default | public | 2020-11-16 13:28 | 2020-11-26 14:42 |
Reporter | aclru | Assigned To | infrastation | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | 0.21.5 | ||||
Summary | 1999: Errors when upgrading from 0.20.10 to 0.21.5 | ||||
Description | When upgrading from version 0.20.10 to 0.21.5, the upgrade is in progress but errors occur. | ||||
Steps To Reproduce | Install 0.20.10 Upgrade from 0.20.10 to 0.21.5 | ||||
Additional Information | Executing batch '0.21.2' The following queries failed: INSERT INTO Chapter (`id`, `sticky`, `name`) VALUES (39,'no','UPS models') -- Duplicate entry 'UPS models' for key 'name' INSERT INTO AttributeMap (`objtype_id`,`attr_id`,`chapter_id`) VALUES (12,2,39) -- Duplicate entry '12-2' for key 'objtype_id' Executing batch 'dictionary' The following queries failed: INSERT INTO Dictionary (dict_key, chapter_id, dict_value, dict_sticky) VALUES (3689, 39, '[[APC%GPASS%SMT1500RMI2U | http://www.apc.com/products/resource/include/techspec_index.cfm?base_sku=SMT1500RMI2U]]', 'yes'), (3690, 39, '[[APC%GPASS%SMT1500RMI2UNC | http://www.apc.com/products/resource/include/techspec_index.cfm?base_sku=SMT1500RMI2UNC]]', 'yes'), (3691, 12, '[[NETGEAR%GPASS%GS108 | https://www.netgear.com/business/products/switches/unmanaged/GS108.aspx]]', 'yes'), (3692, 12, '[[NETGEAR%GPASS%GS105 | https://www.netgear.com/business/products/switches/unmanaged/GS105.aspx]]', 'yes'), (3693, 13, '[[PROXMOX%GSKIP%Proxmox VE 3.4 | http://pve.proxmox.com/wiki/Roadmap#Proxmox_VE_3.4]]', 'yes'), (3694, 13, '[[PROXMOX%GSKIP%Proxmox VE 4.0 | http://pve.proxmox.com/wiki/Roadmap#Proxmox_VE_4.0]]', 'yes'), (3695, 13, '[[PROXMOX%GSKIP%Proxmox VE 4.1 | http://pve.proxmox.com/wiki/Roadmap#Proxmox_VE_4.1]]', 'yes'), (3696, 13, '[[PROXMOX%GSKIP%Proxmox VE 4.2 | http://pve.proxmox.com/wiki/Roadmap#Proxmox_VE_4.2]]', 'yes'), (3697, 13, '[[PROXMOX%GSKIP%Proxmox VE 4.3 | http://pve.proxmox.com/wiki/Roadmap#Proxmox_VE_4.3]]', 'yes'), (3698, 13, '[[PROXMOX%GSKIP%Proxmox VE 4.4 | http://pve.proxmox.com/wiki/Roadmap#Proxmox_VE_4.4]]', 'yes'), (3699, 13, '[[PROXMOX%GSKIP%Proxmox VE 5.0 | http://pve.proxmox.com/wiki/Roadmap#Proxmox_VE_5.0]]', 'yes'), (3700, 13, '[[PROXMOX%GSKIP%Proxmox VE 5.1 | http://pve.proxmox.com/wiki/Roadmap#Proxmox_VE_5.1]]', 'yes'), (3701, 12, '[[TP-Link%GPASS%T1600G-18TS | https://www.tp-link.com/en/products/details/cat-40_T1600G-18TS.html]]', 'yes'), (3702, 27, '[[Raritan%GPASS%PX3-5514U | http://cdn.raritan.com/product-selector/pdus/PX3-5514U/MPX3-5514U.pdf]]', 'yes'), (3703, 12, '[[HP Aruba%GPASS%3810M 16SFP+ 2-slot (JL075A) | http://duckduckgo.com/?q=JL075A+manual ]]', 'yes'), (3704, 13, 'VMWare Hypervisor%GSKIP%VMware ESXi 6.5', 'yes'), (3705, 17, '[[ Fortinet%GPASS%Fortigate 600D | http://www.fortinet.com/content/dam/fortinet/assets/data-sheets/FortiGate_600D.pdf ]]', 'yes'), (3706, 13, 'Ubuntu%GSKIP%Ubuntu 18.04 LTS', 'yes'), (3707, 12, 'MikroTik%GPASS%CRS328-4C-20S-4S+RM', 'yes'), (3708, 12, 'MikroTik%GPASS%CRS328-24P-4S+RM', 'yes'), (3709, 13, '[[Debian%GSKIP%Debian 9 (Stretch) | http://debian.org/releases/stretch/]]', 'yes'), (3710, 12, 'Arista%GPASS%7170-32C', 'yes'), (3711, 12, 'Arista%GPASS%7170-64C', 'yes'), (3712, 12, 'Arista%GPASS%7060SX2-48YC6', 'yes'), (3713, 12, 'Arista%GPASS%7260CX3-64', 'yes') -- Cannot add or update a child row: a foreign key constraint fails (`racktables_v20_8`.`Dictionary`, CONSTRAINT `Dictionary-FK-chapter_id` FOREIGN KEY (`chapter_id`) REFERENCES `Chapter` (`id`)) Summary Upgrade complete, it is Ok to enter the system. | ||||
Tags | No tags attached. | ||||
|
|
SELECT * FROM Chapter WHERE name = 'UPS models'; | |
MariaDB [racktables_db]> SELECT * FROM Chapter WHERE name = 'UPS models'; +-------+--------+------------+ | id | sticky | name | +-------+--------+------------+ | 10001 | no | ups models | +-------+--------+------------+ 1 row in set (0.001 sec) MariaDB [racktables_db]> |
|
UPDATE Chapter SET name = 'UPS models custom' WHERE id = 10001; INSERT INTO Chapter (`id`, `sticky`, `name`) VALUES (39,'no','UPS models'); (then the long "INSERT INTO Dictionary" that failed before) SELECT * FROM AttributeMap WHERE chapter_id = 10001; SELECT COUNT(*) FROM Dictionary WHERE chapter_id = 10001; SELECT COUNT(*) FROM AttributeValue WHERE object_tid = 12 AND attr_id = 2; |
|
--------------- MariaDB [(none)]> use racktables_db; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [racktables_db]> UPDATE Chapter SET name = 'UPS models custom' WHERE id = 10001; Query OK, 1 row affected (0.005 sec) Rows matched: 1 Changed: 1 Warnings: 0 MariaDB [racktables_db]> INSERT INTO Chapter (`id`, `sticky`, `name`) VALUES (39,'no','UPS models'); Query OK, 1 row affected (0.002 sec) MariaDB [racktables_db]> MariaDB [racktables_db]> INSERT INTO Dictionary (dict_key, chapter_id, dict_value, dict_sticky) VALUES (3689, 39, '[[APC%GPASS%SMT1500RMI2U ............. MariaDB [racktables_db]> ++++ Database changed MariaDB [racktables_db]> SELECT * FROM AttributeMap WHERE chapter_id = 10001; +------------+---------+------------+--------+ | objtype_id | attr_id | chapter_id | sticky | +------------+---------+------------+--------+ | 12 | 2 | 10001 | no | +------------+---------+------------+--------+ 1 row in set (0.001 sec) MariaDB [racktables_db]> SELECT COUNT(*) FROM Dictionary WHERE chapter_id = 10001; +----------+ | COUNT(*) | +----------+ | 14 | +----------+ 1 row in set (0.001 sec) MariaDB [racktables_db]> SELECT COUNT(*) FROM AttributeValue WHERE object_tid = 12 AND attr_id = 2; +----------+ | COUNT(*) | +----------+ | 87 | +----------+ 1 row in set (0.001 sec) MariaDB [racktables_db]> |
|
The attached script should fix the remaining issues, remember to make a database backup first. rtmantis1999.php (1,159 bytes)
#!/usr/bin/env php <?php $script_mode = TRUE; require '/absolute/path/to/racktables/wwwroot/inc/init.php'; define ('MY_OBJTID', 12); define ('MY_ATTRID', 2); define ('SYSTEM_CID', 39); define ('CUSTOM_CID', 10001); $dbxlink->beginTransaction(); $result = usePreparedSelectBlade ( 'SELECT dict_key, dict_value FROM Dictionary WHERE chapter_id = ?', array (CUSTOM_CID) ); $custom = $result->fetchAll (PDO::FETCH_ASSOC); unset ($result); foreach ($custom as $row) { usePreparedInsertBlade ( 'Dictionary', array ('chapter_id' => SYSTEM_CID, 'dict_value' => $row['dict_value']) ); $new_id = lastInsertID(); usePreparedUpdateBlade ( 'AttributeValue', array ('uint_value' => $new_id), array ( 'object_tid' => MY_OBJTID, 'attr_id' => MY_ATTRID, 'uint_value' => $row['dict_key'], ) ); usePreparedDeleteBlade ('Dictionary', array ('dict_key' => $row['dict_key'])); } usePreparedUpdateBlade ( 'AttributeMap', array ('chapter_id' => SYSTEM_CID), array ( 'objtype_id' => MY_OBJTID, 'attr_id' => MY_ATTRID, 'chapter_id' => CUSTOM_CID, ) ); usePreparedDeleteBlade ('Chapter', array ('id' => CUSTOM_CID)); $dbxlink->commit(); |
|
Closing as resolved. | |
Date Modified | Username | Field | Change |
---|---|---|---|
2020-11-16 13:28 | aclru | New Issue | |
2020-11-16 13:28 | aclru | File Added: 2020-11-16_17-16-22.png | |
2020-11-23 23:30 | infrastation | Note Added: 0004205 | |
2020-11-24 04:22 | aclru | Note Added: 0004207 | |
2020-11-24 12:56 | infrastation | Note Added: 0004209 | |
2020-11-25 14:26 | aclru | Note Added: 0004211 | |
2020-11-25 22:54 | infrastation | Note Added: 0004213 | |
2020-11-25 22:54 | infrastation | File Added: rtmantis1999.php | |
2020-11-26 14:42 | infrastation | Assigned To | => infrastation |
2020-11-26 14:42 | infrastation | Status | new => closed |
2020-11-26 14:42 | infrastation | Resolution | open => fixed |
2020-11-26 14:42 | infrastation | Note Added: 0004215 |