diff options
| author | Matthias Radestock <matthias@lshift.net> | 2008-12-02 18:02:13 +0000 |
|---|---|---|
| committer | Matthias Radestock <matthias@lshift.net> | 2008-12-02 18:02:13 +0000 |
| commit | 9a8e171d8ee6cbe495498203c1b24a5a348f5344 (patch) | |
| tree | 7517e5d173fd84ea8adc2faf375d1d4b51f34a9c /src | |
| parent | c58a08a9e0c272cadff9a15796512f5ef9205ff4 (diff) | |
| parent | f3f83f0a6c1430e8add101466179d3a2905eaece (diff) | |
| download | rabbitmq-server-git-9a8e171d8ee6cbe495498203c1b24a5a348f5344.tar.gz | |
merge default into bug19684
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_mnesia.erl | 18 | ||||
| -rw-r--r-- | src/rabbit_tests.erl | 2 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl index 8d34d2855b..ca8b587846 100644 --- a/src/rabbit_mnesia.erl +++ b/src/rabbit_mnesia.erl @@ -30,6 +30,9 @@ -export([table_names/0]). +%% Called by rabbitmq-mnesia-current script +-export([schema_current/0]). + %% create_tables/0 exported for helping embed RabbitMQ in or alongside %% other mnesia-using Erlang applications, such as ejabberd -export([create_tables/0]). @@ -48,6 +51,7 @@ -spec(reset/0 :: () -> 'ok'). -spec(force_reset/0 :: () -> 'ok'). -spec(create_tables/0 :: () -> 'ok'). +-spec(schema_current/0 :: () -> bool()). -endif. @@ -91,6 +95,20 @@ cluster(ClusterNodes) -> reset() -> reset(false). force_reset() -> reset(true). +%% This is invoked by rabbitmq-mnesia-current. +schema_current() -> + application:start(mnesia), + ok = ensure_mnesia_running(), + ok = ensure_mnesia_dir(), + ok = init_db(read_cluster_nodes_config()), + try + ensure_schema_integrity(), + true + catch + {error, {schema_integrity_check_failed, _Reason}} -> + false + end. + %%-------------------------------------------------------------------- table_definitions() -> diff --git a/src/rabbit_tests.erl b/src/rabbit_tests.erl index db78bbcc50..09e2cfe4e8 100644 --- a/src/rabbit_tests.erl +++ b/src/rabbit_tests.erl @@ -131,6 +131,8 @@ test_topic_matching() -> passed. test_app_management() -> + true = rabbit_mnesia:schema_current(), + %% starting, stopping, status ok = control_action(stop_app, []), ok = control_action(stop_app, []), |
