ADD fonction pour restaurer une BD à partir d'un fichier texte dans euphorik_bd_admin
[euphorik.git] / modules / erl / euphorik_bd_admin.erl
index 12c2d4d..843d830 100644 (file)
@@ -32,8 +32,9 @@
    connect/1,
    reset/0,
    update/0,
-   backup/1,
-   restore/1,
+   
+   backup_text/1,
+   restore_text/1,
    
    toggle_ek_master/1,
    print_users/0,
@@ -219,14 +220,14 @@ patch_1_traiter_message(M, Racine) ->
    ).
 
 % 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).
+%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), [{default_op, recreate_tables}]).
+%restore(N) ->
+%   mnesia:restore(fichier_backup(N), [{default_op, recreate_tables}]).
 
 
 % Renvoie le fichier (avec le chemin) correspondant à la version Version, par exemple : "/var/euphorik/BD/backups/backup1"
@@ -234,6 +235,20 @@ fichier_backup(Version) ->
    mnesia:system_info(directory) ++ "/backups/" ++ if is_integer(Version) -> "backup" ++ integer_to_list(Version); true -> Version end.
 
 
+backup_text(_) -> todo.
+restore_text(File) -> 
+   mnesia:stop(),
+   mnesia:delete_schema([node()]),
+   mnesia:start(),
+   case mnesia:load_textfile(File) of
+      {atomic, ok} ->
+         update(),
+         creer_indexes();
+      Erreur ->
+         Erreur
+   end.
+
+
 toggle_ek_master(User_id) ->
    euphorik_bd:resultat_transaction(mnesia:transaction(
       fun() ->