1 % Module de création de la base de données euphorik.
6 -export([create
/0, create_tables
/0, vers_version2
/0, vers_version3
/0, peupler
/0, tester
/0]).
8 -include("../include/euphorik_bd.hrl").
11 % Instructions pour créer une nouvelle base :
12 % $erl -sname yaws -mnesia dir '"/projets/euphorik/BD"'
14 % >euphorik_bd:create().
17 mnesia:delete_schema([node()]),
18 mnesia:create_schema([node()]), % nécessaire pour les tables sur disc
24 mnesia:create_table(counter
, [
25 {attributes
, record_info(fields
, counter
)},
26 {disc_copies
, [node()]}
28 mnesia:create_table(minichat
, [
29 {attributes
, record_info(fields
, minichat
)},
31 {disc_copies
, [node()]}
33 mnesia:create_table(reponse_minichat
, [
35 {attributes
, record_info(fields
, reponse_minichat
)},
37 {disc_copies
, [node()]}
39 mnesia:create_table(user
, [
40 {attributes
, record_info(fields
, user
)},
41 {index
, [cookie
, login
]},
42 {disc_copies
, [node()]}
47 mnesia:transform_table(
49 fun({user
, Id
, Cookie
, Pseudo
, Date_creation
, Date_derniere_connexion
, Css
}) ->
50 {user
, Id
, Cookie
, Pseudo
, "", "", "", Date_creation
, Date_derniere_connexion
, Css
}
52 record_info(fields
, user
),
57 mnesia:transform_table(
59 fun({user
, Id
, Cookie
, Pseudo
, Login
, Password
, Email
, Date_creation
, Date_derniere_connexion
, Css
}) ->
60 {user
, Id
, Cookie
, Pseudo
, Login
, Password
, Email
, Date_creation
, Date_derniere_connexion
, Css
, 0}
62 record_info(fields
, user
),
67 % exemple de peuplage de la BD, utilisé pour les tests
71 mnesia:write({minichat
, now(), "Pierre", "Salut tout le monde"}),
72 mnesia:write({minichat
, now(), "Paul", "Salut à toi !"})