-% Met à jour la bd, compare ?VERSION_BD avec la version dans la table 'proprietes'
-% et exécute les patchs nécessaires.
-update() ->
- mnesia:transaction(
- fun() ->
- case mnesia:read({proprietes, version}) of
- [#proprietes{nom = Version}] ->
- update(Version);
- _ ->
- erreur
- end
- end
- ).
-
-
-% Mise à jour de la BD.
-% attention : il est nécessaire de se trouver dans une transaction.
-update(?VERSION_BD) -> fini;
-update(Version) ->
- 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.
-% 2 -> 3
-%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)).
-
-