X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=modules%2Ferl%2Feuphorik_bd_update.erl;h=4c722848b48f277c7f8beb96b0fd5d5d577f4752;hp=1f04ab08743f73858d0d3e947f21980f4c92ec77;hb=f39b28682e1e41cd487a2268320552b687640adf;hpb=384d85d53813f191ec34860ec9c69efad8e5366e diff --git a/modules/erl/euphorik_bd_update.erl b/modules/erl/euphorik_bd_update.erl index 1f04ab0..4c72284 100644 --- a/modules/erl/euphorik_bd_update.erl +++ b/modules/erl/euphorik_bd_update.erl @@ -24,6 +24,7 @@ -export([ version_bd/0, update/0, + backup/1, restore/1 ]). -import(qlc, [e/2, q/1, cursor/2]). @@ -78,7 +79,7 @@ patch(1) -> mnesia:transform_table( user, fun({user, Id, Cookie, Pseudo, Login, Password, Email, Date_creation, Date_derniere_connexion, Css, Nick_format, View_times, View_tooltips, Indice_flood, _Page_principale, Conversations, Ek_master, Last_ip}) -> - {user, Id, Cookie, Pseudo, Login, Password, Email, Date_creation, Date_derniere_connexion, Css, Nick_format, View_times, View_tooltips, light, reverse, Indice_flood, lists:map(fun({R, _}) -> {R, false} end, Conversations), Ek_master, Last_ip} + {user, Id, Cookie, Pseudo, Login, Password, Email, Date_creation, Date_derniere_connexion, patch1_transforme_css(Css), Nick_format, View_times, View_tooltips, light, reverse, Indice_flood, lists:map(fun({R, _}) -> {R, false} end, Conversations), Ek_master, Last_ip} end, record_info(fields, user), user @@ -106,6 +107,14 @@ patch(1) -> %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(F) -> + F. + + patch_1_traiter_message(M, Racine) -> % met à jour la racine de chaque message qui répond à M lists:foreach( @@ -116,13 +125,18 @@ patch_1_traiter_message(M, Racine) -> euphorik_bd:enfants(M#minichat.id) ). +% 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). + % 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), []). +restore(N) when is_integer(N) -> + mnesia:restore(fichier_backup(N), [{default_op, recreate_tables}]); +restore(Nom) when is_string(Nom) -> -% Renvoie le fichier (avec le chemin) correspondant à la version Version. +% Renvoie le fichier (avec le chemin) correspondant à la version Version, par exemple : "/var/euphorik/BD/backups/backup1" fichier_backup(Version) -> mnesia:system_info(directory) ++ "/backups/backup" ++ integer_to_list(Version).