summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--packaging/debs/Debian/debian/postinst2
-rwxr-xr-xscripts/rabbitmq-mnesia-current (renamed from scripts/rabbitmq-mnesia-update-needed)2
-rw-r--r--src/rabbit_mnesia.erl15
4 files changed, 11 insertions, 12 deletions
diff --git a/Makefile b/Makefile
index aa55dc382e..66637ee233 100644
--- a/Makefile
+++ b/Makefile
@@ -64,7 +64,7 @@ run: all
NODE_IP_ADDRESS=$(NODE_IP_ADDRESS) NODE_PORT=$(NODE_PORT) NODE_ONLY=true LOG_BASE=$(LOG_BASE) RABBIT_ARGS="$(RABBIT_ARGS) -s rabbit" MNESIA_DIR=$(MNESIA_DIR) ./scripts/rabbitmq-server
check-mnesia-schema: all
- NODE_IP_ADDRESS=$(NODE_IP_ADDRESS) NODE_PORT=$(NODE_PORT) LOG_BASE=$(LOG_BASE) MNESIA_DIR=$(MNESIA_DIR) ./scripts/rabbitmq-mnesia-update-needed
+ NODE_IP_ADDRESS=$(NODE_IP_ADDRESS) NODE_PORT=$(NODE_PORT) LOG_BASE=$(LOG_BASE) MNESIA_DIR=$(MNESIA_DIR) ./scripts/rabbitmq-mnesia-current
run-node: all
NODE_IP_ADDRESS=$(NODE_IP_ADDRESS) NODE_PORT=$(NODE_PORT) NODE_ONLY=true LOG_BASE=$(LOG_BASE) RABBIT_ARGS="$(RABBIT_ARGS)" MNESIA_DIR=$(MNESIA_DIR) ./scripts/rabbitmq-server
@@ -137,7 +137,7 @@ install: all
cp scripts/rabbitmq-server $(SBIN_DIR)
cp scripts/rabbitmqctl $(SBIN_DIR)
cp scripts/rabbitmq-multi $(SBIN_DIR)
- cp scripts/rabbitmq-mnesia-update-needed $(SBIN_DIR)
+ cp scripts/rabbitmq-mnesia-current $(SBIN_DIR)
for manpage in docs/*.pod ; do \
pod2man -c "RabbitMQ AMQP Server" -d "" -r "" \
$$manpage | gzip --best > \
diff --git a/packaging/debs/Debian/debian/postinst b/packaging/debs/Debian/debian/postinst
index 94b6e727ac..13d8552f3d 100644
--- a/packaging/debs/Debian/debian/postinst
+++ b/packaging/debs/Debian/debian/postinst
@@ -36,7 +36,7 @@ case "$1" in
configure)
. /usr/share/debconf/confmodule
- if su rabbitmq -s /bin/sh -c /usr/lib/rabbitmq/bin/rabbitmq-mnesia-update-needed ; then
+ if ! su rabbitmq -s /bin/sh -c /usr/lib/rabbitmq/bin/rabbitmq-mnesia-current ; then
db_beginblock
db_input high rabbitmq-server/mnesia-dir-note || true
db_input high rabbitmq-server/do-what-with-mnesia-dir || true
diff --git a/scripts/rabbitmq-mnesia-update-needed b/scripts/rabbitmq-mnesia-current
index 67bdbd0926..21f04f88d3 100755
--- a/scripts/rabbitmq-mnesia-update-needed
+++ b/scripts/rabbitmq-mnesia-current
@@ -43,7 +43,7 @@ fi
exec erl \
-pa "`dirname $0`/../ebin" \
-noshell \
- -eval 'halt(case rabbit_mnesia:update_needed() of true -> 0; false -> 1 end).' \
+ -eval 'halt(case rabbit_mnesia:schema_current() of true -> 0; false -> 1 end).' \
-mnesia dir "\"${MNESIA_DIR}\"" \
-kernel error_logger '{file,"'/dev/null'"}' \
${CLUSTER_CONFIG}
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl
index 91c8e47723..61d40983a7 100644
--- a/src/rabbit_mnesia.erl
+++ b/src/rabbit_mnesia.erl
@@ -30,8 +30,8 @@
-export([table_names/0]).
-%% Called by rabbit-mnesia-update-needed script
--export([update_needed/0]).
+%% Called by rabbit-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
@@ -51,7 +51,7 @@
-spec(reset/0 :: () -> 'ok').
-spec(force_reset/0 :: () -> 'ok').
-spec(create_tables/0 :: () -> 'ok').
--spec(update_needed/0 :: () -> bool()).
+-spec(schema_current/0 :: () -> bool()).
-endif.
@@ -95,19 +95,18 @@ 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() ->
+%% 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(),
- false
+ true
catch
{error, {schema_integrity_check_failed, _Reason}} ->
- true
+ false
end.
%%--------------------------------------------------------------------