Diagnostic des bases de données

En cas de problème sur le fonctionnement de FREEDOM, un diagnostic de premier niveau peut être effectué sur les bases de données.

Ce diagnostic est accessible via l'url suivante

http:<votre serveur>/freedom/admin

Cette url vous demandera le mot de passe de l'administrateur (Celui qui a servi à la création).

Cliquez sur Check List

main connection db

Signification :

Remède :

Vérifier que Postgresql est bien lancé

unreference user in group

Signification :

Remède :

Supprimer les références :

DELETE FROM groups where iduser not in (select id from users);

user as group

Exemple :

user as group1 users detected as group 25

Signification :

Peut arriver par un import sql qui écraserait les utilisateurs

Remède :

Soit mettre les utilisateurs comme groupe (mettre l'attribut isgroup à Y dans la table users) ou supprimer la référence dans la table groupe :

anakeen=# begin;
anakeen=# DELETE FROM groups WHERE idgroup not in (select id from users where isgroup='Y');
DELETE 110
anakeen=# commit;
COMMIT

Et exécuter cette commande :

# wsh --api=freedom_groups 

unreference actions

Signification :

Peut arriver lors de suppression d'applications

Remède :

Appliquer le fichier sql /usr/share/what/WHAT/what_clean.sql sur la base principale

unreference parameters

Signification :

Peut arriver lors de suppression d'applications

Remède :

Appliquer le fichier sql /usr/share/what/WHAT/what_clean.sql sur la base principale

unreference acl

Signification :

Remède :

Appliquer le fichier sql /usr/share/what/WHAT/what_clean.sql sur la base principale

unreference permission

Signification :

Remède :

Appliquer le fichier sql /usr/share/what/WHAT/what_clean.sql sur la base principale

connection db freedom

Signification :

Remède :

double doc id

Exemple :

1 double id detected
Array
(
    [1178] => 2
)

Signification :

Plusieurs documents ont le même identifiant numérique. Peut arriver lors d'importation avec des identificateurs fixe ou lors d'importation avec des familles inexistantes.

Remède :

Supprimer l'un des doublons (ou les deux)

freedom=# select id,count(*) from doc group by id having count(*)>1;
  id  | count
------+-------
 1178 |     2

Détail des enregistrements posant problème :

freedom=# select id,title,fromid,locked from doc where id=1178;
  id  |      title      | fromid | locked
------+-----------------+--------+--------
 1178 | Fiche de suivi  |      0 |      0
 1178 | Dossier EI auto |   1169 |      0

Suppression de l'enregistrement incorrecte :

freedom=# delete from doc where id=1178 and fromid=0;
DELETE 1

double doc name

Signification :

Plusieurs documents ont le même identifiant logique (attribut name)

Remède :

Supprimer l'un des doublons (ou les deux)

multiple alive revision

Exemple : 2 multiple alive

Array (

  [73780] => jean-raymond.durand@wanadoo.fr
  [85480] => Restauration groupe test

)

Signification :

Plusieurs révisions “vivante” sur un même document. Cela peut arriver sur d'ancienne version (< 2.14) lorsque deux tentatives de révisions simultanées sont créés ou si par programmation on force des restauration.

Remède :

www-data@tarfful:~$ ./wsh.php --api=fixMultipleAliveRevision
Fixing mutiple alive revision for (initid='35198', id='85480')
Fixing mutiple alive revision for (initid='56405', id='73780')
freedom=# select id, title from docread where id in (SELECT m AS id  FROM (SELECT min(id) AS m, initid, count(initid) AS c  FROM docread WHERE locked != -1 AND doctype != 'T' GROUP BY docread.initid) AS z where z.c > 1);
  id   |                        title                        
-------+-----------------------------------------------------
 73780 | jean-raymond.durand@wanadoo.fr
 85480 | Restauration groupe test
(2 lignes)


family inheritance

Exemple :

Family [44232]: fromid = 0, pg inherit=
Family [44237]: fromid = 0, pg inherit=
Family [44241]: fromid = 0, pg inherit=
...

Signification :

L'héritage déclaré par la famille ne correspont pas à celle défini dans postgresql. Peut arriver si on change l'héritage d'une famille ou si une famille est créée avant la famille père

Remède :

Identifier les enregistrement posant problème :

freedom=# select id,title,fromid,locked,doctype from doc where fromid=0 and doctype is null;
  id   | title | fromid | locked | doctype
-------+-------+--------+--------+---------
 44232 |       |      0 |      0 |
 44237 |       |      0 |      0 |
 44241 |       |      0 |      0 |
...

Supprimer les enregistrements :

freedom=# delete from doc where fromid=0 and doctype is null;
DELETE 14

Ou supprimer le table correspondante et lancer :

wsh --api=fdl_adoc --docid=<N°famille>

user group synchro

Exemple

inheritance tables group are differents between user=anakeen dbname=anakeen 
and user=anakeen dbname=freedom connection db webdavdbnam

Signification :

Les groupes définis dans la base principale ne sont pas les mêmes que celle de la base FREEDOM

Remède :

Lancer :

wsh --api=freedom_groups

connection db webdav

Signification :

Si le module WORKSPACE est installé

Remède :

connection USER LDAP

Signification :

Si le module NETWORKUSER est installé

Remède :

freedom_3.1/manex/diagnostic.txt · Dernière modification: 30/06/2010 16:26 par eric