diff options
| author | Simon MacMullen <simon@lshift.net> | 2008-11-27 16:26:29 +0000 |
|---|---|---|
| committer | Simon MacMullen <simon@lshift.net> | 2008-11-27 16:26:29 +0000 |
| commit | bd00b2c6aa5839d739c8ee3871c8bd3f3d1d4137 (patch) | |
| tree | 6f683b2df948b17cebdff503ac103667c84c8eaf /src | |
| parent | ce149ff9a892d160cc666426ba769b718c3a9f16 (diff) | |
| download | rabbitmq-server-git-bd00b2c6aa5839d739c8ee3871c8bd3f3d1d4137.tar.gz | |
Create rabbitmq-mnesia-update-needed script
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_mnesia.erl | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl index 9b67135def..140574b5db 100644 --- a/src/rabbit_mnesia.erl +++ b/src/rabbit_mnesia.erl @@ -30,6 +30,9 @@ -export([table_names/0]). +%% Called by rabbit-mnesia-update-needed script +-export([update_needed/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(update_needed/0 :: () -> 'halt'). -endif. @@ -91,6 +95,20 @@ cluster(ClusterNodes) -> reset() -> reset(false). force_reset() -> reset(true). +%% This is invoked by rabbitmq-mnesia-update-needed. It will halt with an error +%% code if an update is needed, and halt without one otherwise. +update_needed() -> + application:start(mnesia), + ok = ensure_mnesia_running(), + ok = ensure_mnesia_dir(), + ok = init_db(read_cluster_nodes_config()), + try ensure_schema_integrity() + catch + {error, {schema_integrity_check_failed, _Reason}} -> + halt(1) + end, + halt(). + %%-------------------------------------------------------------------- table_definitions() -> |
