X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=modules%2Ferl%2Feuphorik_bd_update.erl;h=a039c1f10ad19e3b0b4c24011dd0e93fdf2bf332;hp=1f04ab08743f73858d0d3e947f21980f4c92ec77;hb=ed8e58f8759312d4c71043023c4ed198330bc5f4;hpb=7ade6a3495cd5c74c964df5ed794e110e770ed9d diff --git a/modules/erl/euphorik_bd_update.erl b/modules/erl/euphorik_bd_update.erl index 1f04ab0..a039c1f 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,17 @@ 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), []). + mnesia:restore(fichier_backup(N), [{default_op, recreate_tables}]). -% 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). + mnesia:system_info(directory) ++ "/backups/" ++ if is_integer(Version) -> "backup" ++ integer_to_list(Version); true -> Version end.