% 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
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
{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()]}
]).
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() ->
mnesia:write({minichat, now(), "Paul", "Salut à toi !"})
end
).
-
-