summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2021-05-13 13:38:40 +0200
committerBadlop <badlop@process-one.net>2021-05-14 16:06:59 +0200
commit20b4deffe3404af75158541f4522d63d3f871d1d (patch)
tree36a2ee3ccbc410e78ad0bf4487f11f22d61b837c
parentWhen exporting for SQLite, use its specific escape options (#2576) (diff)
Apply improvement from 29462f005 to delete/2, and fix delete/3 (#3564)
-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 84b85b06..804456e1 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 f5c87ffc..ad0cc5e8 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).