From 5e23cc1be933563843a7a9b34d114cb34cb60473 Mon Sep 17 00:00:00 2001 From: Greg Burri Date: Tue, 10 Jun 2008 20:19:23 +0000 Subject: [PATCH] ADD backup lors d'un upgrade de la base --- doc/TODO.txt | 18 ++++++++++++++---- modules/erl/euphorik_bd.erl | 16 ++++++++++++++-- modules/include/euphorik_bd.hrl | 3 ++- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/doc/TODO.txt b/doc/TODO.txt index a3e4a9f..1273290 100755 --- a/doc/TODO.txt +++ b/doc/TODO.txt @@ -5,10 +5,11 @@ * http://www.euphorik.ch/#page=chat * Revoir le système de conversation : * Pouvoir extraire "toute la conversation" ou seulement une "sous conversation" (ce qui est actuellement le cas) - * Tous les messages auquels on répond doivent faire partie de la conversation !! + * Tous les messages auquels on répond doivent faire partie de la conversation ! * L'entête de la conversation contient le premier message (la racine) * Possibilité de fermer temporairement une conversation (la réduire sous la forme d'un onglet) - * lien vers une conversation : http://www.euphorik.ch/#conv=45 + * lien vers une conversation : http://www.euphorik.ch/#conv=45 + * faire un backup de la base v1 avant d'écrire la mise à jour 1->2, permet de revenir à la 1 si des modifs supplémentaires sont nécessaires * Mettre un icon (genre sablier ou truc qui tourne à la apple) lorsque le chat se charge (également lors d'un changement de page par exemple) * L'icon apparait tout en haut (absolute) * Simuler un réseau lent @@ -23,8 +24,17 @@ * Un élément se place entre le pseudo et la ligne de saisie du message et affiche le nombre de message auquel on répond * Lorsque l'on passe le curseur sur cet élément les messages sont affichés en dessous du bouton * Les messages auquels ont répond sont mis en évidence - * lors de la mise à jour des messages la liste est interrogé pour savoir s'il faut le mettre en évidence -=== v1.2 === + * lors de la mise à jour des messages la liste est interrogé pour savoir s'il faut le mettre en évidence +* Ne plus mémoriser le numéro de page dans le profile +=== v1.2 === +* Possibilité d'ajouter des messages dans son profil + * Les messages sont soient publics soient privées (Par défaut privées) + * Un bouton "+" se trouve à coté de chaque message afin de pouvoir l'ajouter dans son profil + * Une série de mots clefs peuvent être ajoutée (tags) le message et alors indexé par rapport à ceux ci + * Par exemple : "news", "event", etc.. + * Proposer les mots clefs les plus courants ? + * Une page "conversations" regroupe tous les messages publiques + * Il est possible de faire une recherche temps réelle sur les tags * Downloader automatiquement toutes les images et substituer l'url original par une url locale * Lorsqu'une image est posté un processus est lancé (de manière asynchrone évidemment), il va télécharger l'image et la stocker sur le serveur puis substituer l'url * Avoir une liste d'amis dans le profile diff --git a/modules/erl/euphorik_bd.erl b/modules/erl/euphorik_bd.erl index 6dff985..c3bbc58 100755 --- a/modules/erl/euphorik_bd.erl +++ b/modules/erl/euphorik_bd.erl @@ -189,11 +189,17 @@ update() -> % attention : il est nécessaire de se trouver dans une transaction. update(?VERSION_BD) -> fini; update(Version) -> - patch(Version), - update(Version + 1). + case mnesia:backup(mnesia:system_info(directory) ++ "/backup" ++ integer_to_list(Version)) of + ok -> + patch(Version), + update(Version + 1); + {error, Raison} -> {error, lists:flatten(io_lib:format("Erreur de création du backup de la version ~w : ~w", [Version, Raison]))} + end. % Applique une modification de la BD pour passer d'une version à la suivante. +% crée un backup avant l'application du patch +% dans BD/backups nommé "backup" où et le numéro de la version. % 1 -> 2 patch(1) -> ok. @@ -201,6 +207,12 @@ patch(1) -> %patch(2) -> +% Reviens à une version précédente de la base de données +% (les insérés durant les versions plus récentes sont perdues données sont perdues) +restore(N) -> + mnesia:restore(mnesia:system_info(directory) ++ "/backup" ++ integer_to_list(N)). + + % Ajoute un nouveau user et le renvoie nouveau_user(Pseudo, Cookie) -> F = fun() -> diff --git a/modules/include/euphorik_bd.hrl b/modules/include/euphorik_bd.hrl index d7cdd8a..5bd4f33 100755 --- a/modules/include/euphorik_bd.hrl +++ b/modules/include/euphorik_bd.hrl @@ -46,7 +46,8 @@ date, % erlang:now() pseudo, % chaine de caractère contenu, % chaine de caractère - troll_id = undefined % l'id du troll associé correspondant + troll_id = undefined, % l'id du troll associé correspondant + racine_id % la racine, par défaut correspond à l'id du message }). -- 2.43.0