ADD backup lors d'un upgrade de la base
authorGreg Burri <greg.burri@gmail.com>
Tue, 10 Jun 2008 20:19:23 +0000 (20:19 +0000)
committerGreg Burri <greg.burri@gmail.com>
Tue, 10 Jun 2008 20:19:23 +0000 (20:19 +0000)
doc/TODO.txt
modules/erl/euphorik_bd.erl
modules/include/euphorik_bd.hrl

index a3e4a9f..1273290 100755 (executable)
@@ -5,10 +5,11 @@
    * http://www.euphorik.ch/#page=chat\r
 * Revoir le système de conversation : \r
    * Pouvoir extraire "toute la conversation" ou seulement une "sous conversation" (ce qui est actuellement le cas)\r
-   * 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)\r
    * Possibilité de fermer temporairement une conversation (la réduire sous la forme d'un onglet)\r
-   * lien vers une conversation : http://www.euphorik.ch/#conv=45\r
+   * 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\r
 * 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)\r
    * L'icon apparait tout en haut (absolute)\r
    * Simuler un réseau lent\r
    * 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\r
-=== v1.2 ===\r
+      * 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\r
+=== 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\r
 * Downloader automatiquement toutes les images et substituer l'url original par une url locale\r
    * 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\r
 * Avoir une liste d'amis dans le profile\r
index 6dff985..c3bbc58 100755 (executable)
@@ -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<num>" où <num> 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() ->
index d7cdd8a..5bd4f33 100755 (executable)
@@ -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
    }).\r
    
    \r