diff options
Diffstat (limited to 'src/mod_mam_mnesia.erl')
-rw-r--r-- | src/mod_mam_mnesia.erl | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/mod_mam_mnesia.erl b/src/mod_mam_mnesia.erl index 55154f6bb..553492583 100644 --- a/src/mod_mam_mnesia.erl +++ b/src/mod_mam_mnesia.erl @@ -48,13 +48,20 @@ %%% API %%%=================================================================== init(_Host, _Opts) -> - ejabberd_mnesia:create(?MODULE, archive_msg, + try + {atomic, _} = ejabberd_mnesia:create( + ?MODULE, archive_msg, [{disc_only_copies, [node()]}, {type, bag}, {attributes, record_info(fields, archive_msg)}]), - ejabberd_mnesia:create(?MODULE, archive_prefs, + {atomic, _} = ejabberd_mnesia:create( + ?MODULE, archive_prefs, [{disc_only_copies, [node()]}, - {attributes, record_info(fields, archive_prefs)}]). + {attributes, record_info(fields, archive_prefs)}]), + ok + catch _:{badmatch, _} -> + {error, db_failure} + end. remove_user(LUser, LServer) -> US = {LUser, LServer}, |