diff options
author | Badlop <badlop@process-one.net> | 2021-05-13 13:38:40 +0200 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2021-05-14 16:06:59 +0200 |
commit | 20b4deffe3404af75158541f4522d63d3f871d1d (patch) | |
tree | 36a2ee3ccbc410e78ad0bf4487f11f22d61b837c | |
parent | When exporting for SQLite, use its specific escape options (#2576) (diff) |
-rw-r--r-- | src/ejabberd_admin.erl | 3 | ||||
-rw-r--r-- | src/ejd2sql.erl | 14 |
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). |