X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=modules%2Ferl%2Feuphorik_bd.erl;h=c3bbc587f8147dbfd493d9e3575f8a3e2cb556e3;hp=6dff985d124d89df95c40c11dc42bf35d75dddb0;hb=5e23cc1be933563843a7a9b34d114cb34cb60473;hpb=8b37c302304e284aa3d3cac15d338929c66fa038 diff --git a/modules/erl/euphorik_bd.erl b/modules/erl/euphorik_bd.erl index 6dff985..c3bbc58 100755 --- a/modules/erl/euphorik_bd.erl +++ b/modules/erl/euphorik_bd.erl @@ -189,11 +189,17 @@ update() -> % attention : il est nécessaire de se trouver dans une transaction. update(?VERSION_BD) -> fini; update(Version) -> - patch(Version), - update(Version + 1). + case mnesia:backup(mnesia:system_info(directory) ++ "/backup" ++ integer_to_list(Version)) of + ok -> + patch(Version), + update(Version + 1); + {error, Raison} -> {error, lists:flatten(io_lib:format("Erreur de création du backup de la version ~w : ~w", [Version, Raison]))} + end. % Applique une modification de la BD pour passer d'une version à la suivante. +% crée un backup avant l'application du patch +% dans BD/backups nommé "backup" où et le numéro de la version. % 1 -> 2 patch(1) -> ok. @@ -201,6 +207,12 @@ patch(1) -> %patch(2) -> +% Reviens à une version précédente de la base de données +% (les insérés durant les versions plus récentes sont perdues données sont perdues) +restore(N) -> + mnesia:restore(mnesia:system_info(directory) ++ "/backup" ++ integer_to_list(N)). + + % Ajoute un nouveau user et le renvoie nouveau_user(Pseudo, Cookie) -> F = fun() ->