X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=modules%2Ferl%2Feuphorik_bd.erl;h=7703bd3dd61753058c88c82db0a51af0f2fc8e12;hb=21e31d4ff2078d18734c98b87a53869f4fa81828;hp=56a659ad1e950a9135c814c7aa6ef4428b341ae9;hpb=288706fac9732d0dbf55fc9e3291e2dda69f1fcd;p=euphorik.git diff --git a/modules/erl/euphorik_bd.erl b/modules/erl/euphorik_bd.erl index 56a659a..7703bd3 100755 --- a/modules/erl/euphorik_bd.erl +++ b/modules/erl/euphorik_bd.erl @@ -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). --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() -> @@ -17,8 +22,8 @@ create() -> 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, [ @@ -40,10 +45,18 @@ create_tables() -> {attributes, record_info(fields, user)}, {index, [cookie, login]}, {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}) -> @@ -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 ). - - -tester() -> - ok. -