MOD évite de faire plein de "register" à la suite et ainsi de saturer la bd de plein...
[euphorik.git] / modules / erl / euphorik_bd.erl
index 56a659a..7703bd3 100755 (executable)
@@ -1,15 +1,20 @@
 % Module de création de la base de données euphorik.
-% Auteur : G.Burri
-% Date : 14.10.2007
+% @author G.Burri
 
 -module(euphorik_bd).\r
--export([create/0, create_tables/0, vers_version2/0, vers_version3/0, peupler/0, tester/0]).\r
+-export([\r
+   create/0,\r
+   create_tables/0,\r
+   vers_version/1,\r
+   peupler/0\r
+   ]).\r
 \r
 -include("../include/euphorik_bd.hrl").\r
 
 
 % Instructions pour créer une nouvelle base : 
 % $erl -sname yaws -mnesia dir '"/projets/euphorik/BD"'
+% voir doc/installation.txt
 % >l(euphorik_bd).
 % >euphorik_bd:create().\r
 create() ->\r
@@ -17,8 +22,8 @@ create() ->
    mnesia:delete_schema([node()]),\r
    mnesia:create_schema([node()]), % nécessaire pour les tables sur disc\r
    mnesia:start(),\r
-   create_tables().\r
-\r
+   create_tables().
+   \r
 
 create_tables() ->\r
    mnesia:create_table(counter, [\r
@@ -40,10 +45,18 @@ create_tables() ->
       {attributes, record_info(fields, user)},
       {index, [cookie, login]},\r
       {disc_copies, [node()]}\r
+   ]),
+   mnesia:create_table(ip_table, [
+      {attributes, record_info(fields, ip_table)},
+      {disc_copies, [node()]}
+   ]),
+   mnesia:create_table(troll, [
+      {attributes, record_info(fields, troll)},
+      {disc_copies, [node()]}
    ]).
 
 
-vers_version2() ->
+vers_version(2) ->
    mnesia:transform_table(
       user,
       fun({user, Id, Cookie, Pseudo, Date_creation, Date_derniere_connexion, Css}) ->
@@ -51,9 +64,8 @@ vers_version2() ->
       end,
       record_info(fields, user),
       user
-   ).
-
-vers_version3() ->
+   );
+vers_version(3) ->
    mnesia:transform_table(
       user,
       fun({user, Id, Cookie, Pseudo, Login, Password, Email, Date_creation, Date_derniere_connexion, Css}) ->
@@ -61,8 +73,64 @@ vers_version3() ->
       end,
       record_info(fields, user),
       user
+   );
+vers_version(4) ->
+   mnesia:transform_table(
+      user,
+      fun({user, Id, Cookie, Pseudo, Login, Password, Email, Date_creation, Date_derniere_connexion, Css, Indice_flood}) ->
+            {user,  Id, Cookie, Pseudo, Login, Password, Email, Date_creation, Date_derniere_connexion, Css, Indice_flood, []}
+      end,
+      record_info(fields, user),
+      user
+   );
+% Ajout du numéro de page de la conv principale
+vers_version(5) ->
+   mnesia:transform_table(
+      user,
+      fun({user, Id, Cookie, Pseudo, Login, Password, Email, Date_creation, Date_derniere_connexion, Css, Indice_flood, Conversations}) ->
+            {user,  Id, Cookie, Pseudo, Login, Password, Email, Date_creation, Date_derniere_connexion, Css, Indice_flood, 1, Conversations}
+      end,
+      record_info(fields, user),
+      user
+   );
+% Ajout le format d'affichage des pseudos
+vers_version(6) ->
+   mnesia:transform_table(
+      user,
+      fun({user, Id, Cookie, Pseudo, Login, Password, Email, Date_creation, Date_derniere_connexion, Css, Indice_flood, Page_Principale, Conversations}) ->
+            {user,  Id, Cookie, Pseudo, Login, Password, Email, Date_creation, Date_derniere_connexion, Css, nick, Indice_flood, Page_Principale, Conversations}
+      end,
+      record_info(fields, user),
+      user
+   );
+% Ajout de la table 'ip_table'
+% Ajout du statut 'ek_master' pour les users
+vers_version(7) ->
+   mnesia:transform_table(
+      user,
+      fun({user, Id, Cookie, Pseudo, Login, Password, Email, Date_creation, Date_derniere_connexion, Css, Nick_format, Indice_flood, Page_Principale, Conversations}) ->
+            {user,  Id, Cookie, Pseudo, Login, Password, Email, Date_creation, Date_derniere_connexion, Css, Nick_format, Indice_flood, Page_Principale, Conversations, false, undefined}
+      end,
+      record_info(fields, user),
+      user
+   ),
+   mnesia:create_table(ip_table, [
+      {attributes, record_info(fields, ip_table)},
+      {disc_copies, [node()]}
+   ]),
+   mnesia:create_table(troll, [
+      {attributes, record_info(fields, troll)},
+      {disc_copies, [node()]}
+   ]);
+vers_version(8) ->
+   mnesia:transform_table(
+      ip_table,
+      fun() -> null end,
+      record_info(fields, ip_table),
+      ip_table
    ).
-      
+   
+
 
 % exemple de peuplage de la BD, utilisé pour les tests
 peupler() ->   
@@ -72,8 +140,3 @@ peupler() ->
          mnesia:write({minichat, now(), "Paul", "Salut à toi !"})
       end
    ).
-
-\r
-tester() ->\r
-   ok.
-