diff options
| -rw-r--r-- | Makefile | 4 | ||||
| -rw-r--r-- | packaging/debs/Debian/debian/postinst | 2 | ||||
| -rwxr-xr-x | scripts/rabbitmq-mnesia-current (renamed from scripts/rabbitmq-mnesia-update-needed) | 2 | ||||
| -rw-r--r-- | src/rabbit_mnesia.erl | 15 |
4 files changed, 11 insertions, 12 deletions
@@ -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. %%-------------------------------------------------------------------- |
