diff options
| author | Matthias Radestock <matthias@lshift.net> | 2008-12-02 11:40:23 +0000 |
|---|---|---|
| committer | Matthias Radestock <matthias@lshift.net> | 2008-12-02 11:40:23 +0000 |
| commit | 60b0f6703e409f7629ea48017dade4d1c2d9672a (patch) | |
| tree | 3a73da000dd483313d6f455381eba30154e219f9 /src | |
| parent | 4029615d25b0b6160eab6a61cd09d2e8e6c98e89 (diff) | |
| parent | 99f686ef9115605c9bc9c5f19db9f61a8590d880 (diff) | |
| download | rabbitmq-server-git-60b0f6703e409f7629ea48017dade4d1c2d9672a.tar.gz | |
merge bug19871 into default
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, []), |
