% 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<num>" où <num> et le numéro de la version.
% 1 -> 2
patch(1) ->
ok.
%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() ->