diff options
author | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-07-18 11:16:13 +0100 |
---|---|---|
committer | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-07-18 11:16:13 +0100 |
commit | a5a02e720d5a4c1acaa5d6b7d7877b2709633add (patch) | |
tree | a2323514c5b4344bc6feeb9011ca42ef9eeba673 | |
parent | 8dc1f8ea8de5155a08304e60532b01a7bf48506e (diff) | |
download | rabbitmq-server-a5a02e720d5a4c1acaa5d6b7d7877b2709633add.tar.gz |
the argument is sometimes 'disc_copies' and not 'disc'
-rw-r--r-- | src/rabbit_mnesia.erl | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl index 52103a09..2db598c9 100644 --- a/src/rabbit_mnesia.erl +++ b/src/rabbit_mnesia.erl @@ -444,6 +444,8 @@ init_db(ClusterNodes, Force, SecondaryPostMnesiaFun) -> end; true -> ok end, + %% We create a new db (on disk, or in ram) in the first + %% three cases and attempt to upgrade the in the other two case {Nodes, WasDiskNode, IsDiskNode} of {[], false, false} -> ok = create_tables(false), @@ -453,28 +455,28 @@ init_db(ClusterNodes, Force, SecondaryPostMnesiaFun) -> move_db(), ok = create_tables(false), ok = rabbit_version:record_desired(); - {[], false, _} -> + {[], false, true} -> %% Nothing there at all, start from scratch ok = create_schema(); - {[], _, true} -> + {[], true, true} -> %% We're the first node up - case rabbit_upgrade:maybe_upgrade_local() of - ok -> - ensure_schema_integrity(); - version_not_available -> - ok = schema_ok_or_move() - end, - ok; + ok = case rabbit_upgrade:maybe_upgrade_local() of + ok -> + ensure_schema_integrity(); + version_not_available -> + schema_ok_or_move() + end; {[AnotherNode|_], _, _} -> %% Subsequent node in cluster, catch up ensure_version_ok( rpc:call(AnotherNode, rabbit_version, recorded, [])), ok = wait_for_replicated_tables(), - CopyType = case IsDiskNode of - true -> disc; - false -> ram - end, - ok = create_local_table_copy(schema, CopyType), + {CopyType, CopyTypeAlt} = + case IsDiskNode of + true -> {disc, disc_copies}; + false -> {ram, ram_copies} + end, + ok = create_local_table_copy(schema, CopyTypeAlt), ok = create_local_table_copies(CopyType), ok = SecondaryPostMnesiaFun(), ensure_schema_integrity(), |