Welcome to OCS Inventory NG community support, where you can ask questions and receive answers from other members of the community.

Please ask questions only in English or French.

Release 2.11.1 available

The official documentation can be found on http://wiki.ocsinventory-ng.org. Read it before asking your question.

Probleme de recherche multicritere

Bonjour

Je viens de passer ma version de OCS de 2.7 à la 2.9.1 et j'ai un problème avec la recherche multicritère.

Déjà je tiens à préciser que j'ai déjà eu le problème en passant de 2.7 vers 2.8 mais à l'époque je n’ai pas cherché et j'ai fait un retour arrière

 

Quand j'utilise une recherche multicritère enregistré qui fonctionnais avant la MAJ j'ai des erreurs en Debug:

 

 Table 'ocsweb.softwares' doesn't exist
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 3
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 3

Si je refais la recherche certaine fonctionne à nouveau sauf les recherches avec comme critère "ne contient pas"

 

Unknown column 'HARDWARE_ID' in 'field list'
Unknown column 'HARDWARE_ID' in 'field list'

 

 

Merci pour votre aide

<!--[if gte mso 9]> <![endif]--><!--[if gte mso 9]> Normal 0 21 false false false FR X-NONE X-NONE <![endif]--><!--[if gte mso 9]> <![endif]--><!--[if gte mso 10]>

<![endif]-->
in OCS Inventory NG server for Unix by (320 points)

10 Answers

0 votes
Bonjour,
Il y a peut être eu un soucis lors de la mise à jour, car la table softwares n'existe plus, et a été remplacée par software (sans le s du coup)

Rééssayez d'installer..
by (600 points)
0 votes
Bonjour Merci pour la réponse

je viens de regardé et la tables existe  bien et contient des informations

voici les tables présente

softwares

softwares_name_cache

software_categories

software_category_exp

Je veux bien refaire l'installation mais c'est ma deuxième tentative avec des sources différentes et j'arrive au même résultat
by (320 points)
0 votes
Curieux, quand j'ai fait la mise à jour, il m'a fait ces modifications..

Software | software_categories | software_categories_link | software_category_exp | software_link |software_name |software_publisher |software_version | softwares_name_cache |

Et lors de la mise à jour, cela t'as bien proposé de mettre à jour la base de données?
by (600 points)
0 votes

Oui il ma bien proposé la MAJ de la BDD et elle c'est déroulé avec succés

Si je renomme les tables je pense que le probléme  sera identique car le message d'erreur indique qu'il cherche bien la tables ocsweb.softwares et j'ai bien la table présente

by (320 points)
0 votes
Je pense aussi en effet. Je trouve quand même curieux ces différences entre nos deux installations, mais je n'ai pas encore tout saisi dans le fonctionnement d'OCS..
by (600 points)
0 votes
si cela peut aider, pour ma part, j'avais vidé la table softwares avant la mise a jour, car j'avais beaucoup trop de ligne dedans. et là j'ai eu les nouvelles tables.

si tu as une sauvegarde avant la mise à jour...
by (600 points)
0 votes
j'avais fait un backup et j'ai donc regardé pour importé la table.

apres import j'ai la recherche qui marche bien

je vais essayer de refaire la MAJ sur mon serveur de PROD mais c'est vraiment bizarre ces difference de table

merci a toi Perceval et je te tiens au courant
by (320 points)
0 votes

Désormais, grâce à 'files/update/70xx.sql', on peut suivre les modifs de structure de la base de données.

La version 2.8 est au niveau '7037', et en particulier avec '7037.sql' la table 'softwares' est supprimée et remplacée par la table 'software' (sans s à la fin) : extrait :

-- migrate softwares

INSERT IGNORE INTO `software` (

  `ID`, `HARDWARE_ID`, `NAME_ID`, `PUBLISHER_ID`, `VERSION_ID`,

  `FOLDER`, `COMMENTS`, `FILENAME`, `FILESIZE`,

  `SOURCE`, `GUID`, `LANGUAGE`, `INSTALLDATE`, `BITSWIDTH`)

SELECT s.`ID`, s.`HARDWARE_ID`, n.`ID`, p.`ID`, v.`ID`,

  s.`FOLDER`, s.`COMMENTS`, s.`FILENAME`, s.`FILESIZE`,

  s.`SOURCE`, s.`GUID`, s.`LANGUAGE`, s.`INSTALLDATE`, s.`BITSWIDTH`

FROM `softwares` s

INNER JOIN `software_name` n ON (n.`NAME` = s.`NAME`)

INNER JOIN `software_publisher` p ON (p.`PUBLISHER` = s.`PUBLISHER`)

INNER JOIN `software_version` v ON (v.`VERSION` = s.`VERSION`);


-- add missing indexes

ALTER TABLE `software` ADD KEY `NAME_ID` (`NAME_ID`);

ALTER TABLE `software` ADD KEY `PUBLISHER_ID` (`PUBLISHER_ID`);

ALTER TABLE `software` ADD KEY `VERSION_ID` (`VERSION_ID`);


-- drop old softwares

DROP TABLE `softwares`;
 

De facto, aucune recherche ne doit tenter d'atteindre 'softwares' (cas des recherches sauvegardées : à supprimer et à refaire !) 

by (18.9k points)
0 votes
Merci beaucoup pour l'informations

je vais refaire la MAJ pour essayer de régler le probléme mais grace a toi je comprend bien le fonctionnement
by (320 points)
0 votes

Bonjour

Je viens de refaire un test et j'ai affiner le problème.

La migration de table software semble fonctionné mais c'est les recherches multicritères qui son à refaire sinon elle cherche dans les anciennes tables.

Un problème reste présent sur les recherches avec le critere "ne contient pas" ou "DOESNTCONTAIN" car il ne fonctionne pas et remonte plusieurs erreurs :

Unknown column 'HARDWARE_ID' in 'field list'

Unknown column 'software_name.HARDWARE_ID' in 'where clause'

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 3

 

J’ai fait l'upgrade en vidant la table software sans succès et j'ai également relance le cron_all_software.php (ça n'a pas de lien mais je l'ai fait quand même)

merci pour l'aide sur ce sujet

<!--[if gte mso 9]> <![endif]--><!--[if gte mso 9]> Normal 0 21 false false false FR X-NONE X-NONE <![endif]--><!--[if gte mso 9]> <![endif]--><!--[if gte mso 10]>

<![endif]-->
by (320 points)
 
Powered by Question2Answer
...