Salut,

Pour le paquet Debian, le schéma SQL est géré par le paquet lui-même et
est mis à jour pendant l'installation des .deb.

J'ai donc essayé d'extraire les commandes SQL des scripts php (en les
executant en ligne de commande et en remplacant par des echo), ce qui
m'a donné les deux fichiers en attachement.

Par contre, j'ai un problème: pendant l'update 0721 -> 0722, une des
commandes SQL échoue, dans la section:

-- Correct search.constant numbers
UPDATE `glpi_display` SET num=3 WHERE num=6 AND type=11;
UPDATE `glpi_display` SET num=34 WHERE num=3 AND type=17;
UPDATE `glpi_display` SET num=3 WHERE num=6 AND type=17;

La première commande échoue, avec un duplicate key. J'ai donc essayé, en
comparant les schémas, d'ajouter un:
UPDATE `glpi_display` SET num=34,rank=1 WHERE ID=82;

juste avant l'update, ce qui règle le problème dans le cas général ...
mais pas toujours (voir
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=548752
)

Pourriez-vous regarder si les scripts SQL sont corrects ? Je soupçonne
que le problème pourrait être lié à l'ordre des commandes ...



Voici l'upgrade (qui échoue) en lançant les commandes manuellement:
mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> -- Update from 0.72 to 0.72.1
mysql> ALTER TABLE `glpi_groups` ADD INDEX `ldap_group_dn` ( `ldap_group_dn` );
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> ALTER TABLE `glpi_groups` ADD INDEX `ldap_value`  ( `ldap_value` );
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> ALTER TABLE `glpi_tracking` ADD INDEX `date_mod` (`date_mod`);
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> commit;
Query OK, 0 rows affected (0.00 sec)

mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> -- Delete state from reservation search
mysql> DELETE FROM `glpi_display` WHERE type=29 AND num=31;
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> -- Clean licences alerts
mysql> DELETE FROM `glpi_alerts` WHERE device_type=20;
Query OK, 0 rows affected (0.01 sec)

mysql> -- Correct search.constant numbers
mysql> UPDATE `glpi_display` SET num=3 WHERE num=6 AND type=11;
ERROR 1062 (23000): Duplicate entry '11-3-0' for key 'display'
mysql> rollback;
Query OK, 0 rows affected (0.00 sec)


Merci !
Pierre
-- Update from 0.72.1 to 0.72.2

-- Delete state from reservation search
DELETE FROM `glpi_display` WHERE type=29 AND num=31;

-- Clean licences alerts
DELETE FROM `glpi_alerts` WHERE device_type=20;

-- XXX debian package: update fails because this key was duplicate
-- UPDATE `glpi_display` SET num=34 WHERE num=3 AND type=11;
-- DELETE FROM `glpi_display` WHERE type=11 AND num=3;
UPDATE `glpi_display` SET num=34,rank=1 WHERE ID=82;

-- Correct search.constant numbers
UPDATE `glpi_display` SET num=3 WHERE num=6 AND type=11;
UPDATE `glpi_display` SET num=34 WHERE num=3 AND type=17;
UPDATE `glpi_display` SET num=3 WHERE num=6 AND type=17;
UPDATE `glpi_display` SET num=34 WHERE num=3 AND type=15;
UPDATE `glpi_display` SET num=3 WHERE num=7 AND type=15;
UPDATE `glpi_display` SET num=46 WHERE num=40 AND type=1;
UPDATE `glpi_display` SET num=40 WHERE num=5 AND type=1;
UPDATE `glpi_display` SET num=5 WHERE num=8 AND type=1;
UPDATE `glpi_display` SET num=45 WHERE num=6 AND type=1;
UPDATE `glpi_display` SET num=6 WHERE num=9 AND type=1;
UPDATE `glpi_display` SET num=6 WHERE num=9 AND type=22;
UPDATE `glpi_display` SET num=5 WHERE num=8 AND type=22;
UPDATE `glpi_display` SET num=23 WHERE num=5 AND type=17;
UPDATE `glpi_display` SET num=23 WHERE num=5 AND type=11;
UPDATE `glpi_display` SET num=24 WHERE num=7 AND type=17;
UPDATE `glpi_display` SET num=24 WHERE num=7 AND type=11;
UPDATE `glpi_display` SET num=19 WHERE num=9 AND type=2;
UPDATE `glpi_display` SET num=19 WHERE num=9 AND type=3;
UPDATE `glpi_display` SET num=19 WHERE num=9 AND type=4;
UPDATE `glpi_display` SET num=19 WHERE num=9 AND type=5;
UPDATE `glpi_display` SET num=19 WHERE num=9 AND type=6;
UPDATE `glpi_display` SET num=19 WHERE num=9 AND type=23;
UPDATE `glpi_display` SET num=16 WHERE num=10 AND type=2;
UPDATE `glpi_display` SET num=16 WHERE num=10 AND type=3;
UPDATE `glpi_display` SET num=16 WHERE num=10 AND type=4;
UPDATE `glpi_display` SET num=16 WHERE num=10 AND type=5;
UPDATE `glpi_display` SET num=16 WHERE num=6 AND type=6;
UPDATE `glpi_display` SET num=16 WHERE num=7 AND type=7;
UPDATE `glpi_display` SET num=16 WHERE num=7 AND type=8;
UPDATE `glpi_display` SET num=16 WHERE num=10 AND type=11;
UPDATE `glpi_display` SET num=16 WHERE num=6 AND type=13;
UPDATE `glpi_display` SET num=16 WHERE num=12 AND type=15;
UPDATE `glpi_display` SET num=16 WHERE num=10 AND type=23;


-- Update from 0.72 to 0.72.1
ALTER TABLE `glpi_groups` ADD INDEX `ldap_group_dn` ( `ldap_group_dn` );
ALTER TABLE `glpi_groups` ADD INDEX `ldap_value`  ( `ldap_value` );
ALTER TABLE `glpi_tracking` ADD INDEX `date_mod` (`date_mod`);
_______________________________________________
Glpi-dev mailing list
Glpi-dev@gna.org
https://mail.gna.org/listinfo/glpi-dev

Reply via email to