X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=modules%2Ferl%2Feuphorik_bd.erl;h=7703bd3dd61753058c88c82db0a51af0f2fc8e12;hb=d9d05b6a2a13c2da190dd68d4409381d093679b2;hp=39825bd91a5f106f04184d10eb2bdc625fbfc37d;hpb=6feaef2a51f7226c41d69f9e86f605718b78aa02;p=euphorik.git diff --git a/modules/erl/euphorik_bd.erl b/modules/erl/euphorik_bd.erl index 39825bd..7703bd3 100755 --- a/modules/erl/euphorik_bd.erl +++ b/modules/erl/euphorik_bd.erl @@ -1,45 +1,62 @@ % Module de création de la base de données euphorik. -% Auteur : G.Burri -% Date : 14.10.2007 +% @author G.Burri -module(euphorik_bd). --export([create/0, create_tables/0, vers_version2/0, vers_version3/0, peupler/0, tester/0]). +-export([ + create/0, + create_tables/0, + vers_version/1, + peupler/0 + ]). -include("../include/euphorik_bd.hrl"). - + +% 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(). create() -> mnesia:stop(), mnesia:delete_schema([node()]), mnesia:create_schema([node()]), % nécessaire pour les tables sur disc mnesia:start(), - create_tables(). - + create_tables(). + create_tables() -> mnesia:create_table(counter, [ {attributes, record_info(fields, counter)}, - {disc_copies, [yaws@overnux]} + {disc_copies, [node()]} ]), mnesia:create_table(minichat, [ {attributes, record_info(fields, minichat)}, {index, [auteur_id]}, - {disc_copies, [yaws@overnux]} + {disc_copies, [node()]} ]), mnesia:create_table(reponse_minichat, [ {type, bag}, {attributes, record_info(fields, reponse_minichat)}, {index, [cible]}, - {disc_copies, [yaws@overnux]} + {disc_copies, [node()]} ]), mnesia:create_table(user, [ {attributes, record_info(fields, user)}, {index, [cookie, login]}, - {disc_copies, [yaws@overnux]} + {disc_copies, [node()]} + ]), + 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}) -> @@ -47,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}) -> @@ -57,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() -> @@ -68,8 +140,3 @@ peupler() -> mnesia:write({minichat, now(), "Paul", "Salut à toi !"}) end ). - - -tester() -> - ok. -