dimanche 21 novembre 2010

Migration de tâches entre deux versions de Thunderbird ?

J'ai du réinstaller Linux récemment et avant ça j'utilisais plus fréquemment Windows.
J'ai mis en place tout doucement mon profil et bien sûr j'ai réinstaller Firefox et Thunderbird mais je n'ai pas restauré mes profils de Windows. En principe il suffit de recopier le dossier du profil entre les OS et c'est parti mais me limitant aux versions proposées dans les dépôts je n'ai pas la dernière version ni de Firefox et encore moins de Thunderbird.
Il se trouve qu'en voulant essayer de remplacer le fichier locale.sqlite dans le dossier calendar-data j'ai eu droit à un joli message d'erreur m'indiquant que la version du fichier avait été construit par une version plus récente du logiciel. Alors ne voulant pas installer 15000 trucs sur ma petite (mais pour le moment suffisante) partition système Linux j'ai regardé ce qui se faisait comme viewer SQLite et il se trouve qu'une extension Firefox plutôt légère offre cette possibilité et en plus ça édite. ;)
Alors bon, j'imagine que pour une migration y'a sûrement mieux mais j'avais pas envie de me casser la tête d'autant plus que j'ai pas 15000 utilisateurs (juste moi) avec chacun 15000 tâches à restaurer donc j'ai un peu fait ça à la mano.
Donc le post n'a pas grand intérêt pour les personnes qui ont ce besoin là.
En revanche les données qui m'intéressaient étaient réparties sur plusieurs tables qui regroupaient pas mal de colonnes pour moi inutiles ce qui nuit à la lisibilité et donc j'ai créé une vue pour avoir tout ce qu'il me fallait sous la main.
C'est très certainement perfectible mais ça fait un petit moment que j'ai pas fait de SQL et ce que j'ai fait est bien suffisant.
Donc voilà la requête SQL :

SELECT cal_todos.title,cal_properties.key,cal_properties.value,cal_todos.priority,cal_todos.ical_status,cal_todos.id,cal_properties.item_id
FROM cal_todos,cal_properties
WHERE cal_properties.item_id=cal_todos.id


Alors bon ensuite je me suis demandé ce qu'il aurait fallu faire pour automatiser un peu plus tout ça et je dois avouer qu'entre les deux versions du fichier (Linux plus ancien et Windows plus à jour) la structure n'est pas tout à fait la même et il semble même que certain types de données ont changés donc pour passer du vieux au neuf (en quantité limité là encore) il suffirait d'installer la vielle version du plugin sur la version à jour de Thunderbird pour ensuite faire une mise-à-jour qui devrait s'occuper des modifications au niveau du fichier mais dans l'autre sens ça paraît plus délicat.
A mon avis installer le nécessaire pour analyser et préparer des requêtes SQL plus conséquences (et surtout scriptable donc le plugin Firefox pourrait ne pas suffire) est presque inévitable.