Premier commit
[euphorik.git] / modules / erl / euphorik_bd.erl
1 % Module de création de la base de données euphorik.
2 % Auteur : G.Burri
3 % Date : 14.10.2007
4
5 -module(euphorik_bd).
6 -export([create/0, create_tables/0, vers_version2/0, vers_version3/0, peupler/0, tester/0]).
7
8 -include("../include/euphorik_bd.hrl").
9
10
11 create() ->
12 mnesia:stop(),
13 mnesia:delete_schema([node()]),
14 mnesia:create_schema([node()]), % nécessaire pour les tables sur disc
15 mnesia:start(),
16 create_tables().
17
18
19 create_tables() ->
20 mnesia:create_table(counter, [
21 {attributes, record_info(fields, counter)},
22 {disc_copies, [yaws@overnux]}
23 ]),
24 mnesia:create_table(minichat, [
25 {attributes, record_info(fields, minichat)},
26 {index, [auteur_id]},
27 {disc_copies, [yaws@overnux]}
28 ]),
29 mnesia:create_table(reponse_minichat, [
30 {type, bag},
31 {attributes, record_info(fields, reponse_minichat)},
32 {index, [cible]},
33 {disc_copies, [yaws@overnux]}
34 ]),
35 mnesia:create_table(user, [
36 {attributes, record_info(fields, user)},
37 {index, [cookie, login]},
38 {disc_copies, [yaws@overnux]}
39 ]).
40
41
42 vers_version2() ->
43 mnesia:transform_table(
44 user,
45 fun({user, Id, Cookie, Pseudo, Date_creation, Date_derniere_connexion, Css}) ->
46 {user, Id, Cookie, Pseudo, "", "", "", Date_creation, Date_derniere_connexion, Css}
47 end,
48 record_info(fields, user),
49 user
50 ).
51
52 vers_version3() ->
53 mnesia:transform_table(
54 user,
55 fun({user, Id, Cookie, Pseudo, Login, Password, Email, Date_creation, Date_derniere_connexion, Css}) ->
56 {user, Id, Cookie, Pseudo, Login, Password, Email, Date_creation, Date_derniere_connexion, Css, 0}
57 end,
58 record_info(fields, user),
59 user
60 ).
61
62
63 % exemple de peuplage de la BD, utilisé pour les tests
64 peupler() ->
65 mnesia:transaction(
66 fun() ->
67 mnesia:write({minichat, now(), "Pierre", "Salut tout le monde"}),
68 mnesia:write({minichat, now(), "Paul", "Salut à toi !"})
69 end
70 ).
71
72
73 tester() ->
74 ok.
75