% - Copie de la BD à partir d'un autre noeud
%
% @author G.Burri
+\r
-module(euphorik_bd_admin).
-export([
connect/1,
reset/0,
update/0,
- backup/1,
- restore/1,
+
+ backup_text/1,
+ restore_text/1,
toggle_ek_master/1,
print_users/0,
]),
mnesia:create_table(minichat, [
{attributes, record_info(fields, minichat)},
- {index, [auteur_id, troll_id]},
{disc_copies, [node()]}
]),
mnesia:create_table(reponse_minichat, [
{type, bag},
{attributes, record_info(fields, reponse_minichat)},
- {index, [cible]},
{disc_copies, [node()]}
]),
mnesia:create_table(user, [
{attributes, record_info(fields, user)},
- {index, [cookie, login]},
{disc_copies, [node()]}
]),
mnesia:create_table(ip_table, [
]),
mnesia:create_table(troll, [
{attributes, record_info(fields, troll)},
- {index, [date_post]},
{disc_copies, [node()]}
- ]).
+ ]),
+ creer_indexes().
+
+
+% mis à part car lors de la reprise de données avec load_textfile les indexes ne sont pas recréés
+creer_indexes() ->
+ mnesia:add_table_index(minichat, auteur_id),
+ mnesia:add_table_index(minichat, troll_id),
+ mnesia:add_table_index(reponse_minichat, cible),
+ mnesia:add_table_index(user, cookie),
+ mnesia:add_table_index(user, login),
+ mnesia:add_table_index(troll, date_post).
% Connexion à la base de données de yaws sur overnux
{aborted, Raison} -> {erreur, Raison};
{atomic, _} -> ok
end.
-% 2 -> 3
-%patch(2) ->
-
+
% Prend un chemin vers la feuille de style de type "css/1/euphorik.css"
% et renvoie "styles/1/euphorik.css"
-patch1_transforme_css(["css" | Reste]) ->
- ["styles" | Reste];
+patch1_transforme_css("css" ++ Reste) ->
+ "styles" ++ Reste;
patch1_transforme_css(F) ->
F.
).
% crée un backup dont le nom est fournit dans le repertoire backups qui se trouve dans le repertoire de la BD.
-backup(Nom) ->
- mnesia:backup(mnesia:system_info(directory) ++ "/backups/" ++ Nom).
+%backup(Nom) ->
+% mnesia:backup(mnesia:system_info(directory) ++ "/backups/" ++ Nom).
% Reviens à une version précédente de la base de données
% (les données insérées durant les versions plus récentes sont perdues)
-restore(N) ->
- mnesia:restore(fichier_backup(N), [{default_op, recreate_tables}]).
+%restore(N) ->
+% mnesia:restore(fichier_backup(N), [{default_op, recreate_tables}]).
% Renvoie le fichier (avec le chemin) correspondant à la version Version, par exemple : "/var/euphorik/BD/backups/backup1"
mnesia:system_info(directory) ++ "/backups/" ++ if is_integer(Version) -> "backup" ++ integer_to_list(Version); true -> Version end.
+backup_text(_) -> todo.
+restore_text(File) ->
+ mnesia:stop(),
+ mnesia:delete_schema([node()]),
+ mnesia:start(),
+ case mnesia:load_textfile(File) of
+ {atomic, ok} ->
+ update(),
+ creer_indexes();
+ Erreur ->
+ Erreur
+ end.
+
+
toggle_ek_master(User_id) ->
euphorik_bd:resultat_transaction(mnesia:transaction(
fun() ->