aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ejabberd_admin.erl3
-rw-r--r--src/ejd2sql.erl14
2 files changed, 11 insertions, 6 deletions
diff --git a/src/ejabberd_admin.erl b/src/ejabberd_admin.erl
index 84b85b061..804456e1c 100644
--- a/src/ejabberd_admin.erl
+++ b/src/ejabberd_admin.erl
@@ -317,7 +317,8 @@ get_commands_spec() ->
#ejabberd_commands{name = export2sql, tags = [mnesia],
desc = "Export virtual host information from Mnesia tables to SQL file",
- longdesc = "Configure the modules to use SQL, then call this command.",
+ longdesc = "Configure the modules to use SQL, then call this command. "
+ "After correct export, check 'delete_mnesia' too.",
module = ejd2sql, function = export,
args_desc = ["Vhost", "Full path to the destination SQL file"],
args_example = ["example.com", "/var/lib/ejabberd/example.com.sql"],
diff --git a/src/ejd2sql.erl b/src/ejd2sql.erl
index f5c87ffcd..ad0cc5e88 100644
--- a/src/ejd2sql.erl
+++ b/src/ejd2sql.erl
@@ -104,12 +104,17 @@ delete(Server) ->
delete(Server, Module)
end, Modules).
-delete(Server, Module) ->
+delete(Server, Module1) ->
LServer = jid:nameprep(iolist_to_binary(Server)),
+ Module = case Module1 of
+ mod_pubsub -> pubsub_db;
+ _ -> Module1
+ end,
+ SQLMod = gen_mod:db_mod(sql, Module),
lists:foreach(
fun({Table, ConvertFun}) ->
delete(LServer, Table, ConvertFun)
- end, Module:export(Server)).
+ end, SQLMod:export(Server)).
import(Server, Dir, ToType) ->
lists:foreach(
@@ -192,7 +197,7 @@ output(_LServer, Table, Fd, SQLs) ->
delete(LServer, Table, ConvertFun) ->
F = fun () ->
mnesia:write_lock_table(Table),
- {_N, SQLs} =
+ {_N, _SQLs} =
mnesia:foldl(
fun(R, Acc) ->
case ConvertFun(LServer, R) of
@@ -203,8 +208,7 @@ delete(LServer, Table, ConvertFun) ->
Acc
end
end,
- {0, []}, Table),
- delete(LServer, Table, SQLs)
+ {0, []}, Table)
end,
mnesia:transaction(F).