summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rabbit_mnesia.erl2
-rw-r--r--src/rabbit_upgrades.erl18
2 files changed, 19 insertions, 1 deletions
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl
index 9f08936757..cd072b9cb4 100644
--- a/src/rabbit_mnesia.erl
+++ b/src/rabbit_mnesia.erl
@@ -287,7 +287,6 @@ check_schema_integrity() ->
check_table_integrity() ->
ok = wait_for_tables(),
- rabbit_upgrade:maybe_upgrade(dir()),
case lists:all(fun ({Tab, TabDef}) ->
{_, Match} = proplists:lookup(match, TabDef),
read_test_table(Tab, Match)
@@ -379,6 +378,7 @@ init_db(ClusterNodes, Force) ->
[] ->
case mnesia:system_info(use_dir) of
true ->
+ rabbit_upgrade:maybe_upgrade(dir()),
case check_schema_integrity() of
ok ->
ok;
diff --git a/src/rabbit_upgrades.erl b/src/rabbit_upgrades.erl
index 17a232c304..dcc79f873e 100644
--- a/src/rabbit_upgrades.erl
+++ b/src/rabbit_upgrades.erl
@@ -34,6 +34,8 @@
-compile([export_all]).
+-rabbit_upgrade({test_add_column, []}).
+-rabbit_upgrade({test_remove_column, [test_add_column]}).
-rabbit_upgrade({remove_user_scope, []}).
%%--------------------------------------------------------------------
@@ -53,3 +55,19 @@ remove_user_scope() ->
read = Read}}
end,
record_info(fields, user_permission)).
+
+test_add_column() ->
+ {atomic, ok} = mnesia:transform_table(
+ rabbit_user,
+ fun({user, Username, Password, Admin}) ->
+ {user, Username, Password, Admin, something_else}
+ end,
+ [username, password, is_admin, something]).
+
+test_remove_column() ->
+ {atomic, ok} = mnesia:transform_table(
+ rabbit_user,
+ fun({user, Username, Password, Admin, _SomethingElse}) ->
+ {user, Username, Password, Admin}
+ end,
+ record_info(fields, user)).