diff options
| -rw-r--r-- | src/rabbit_mnesia.erl | 2 | ||||
| -rw-r--r-- | src/rabbit_upgrades.erl | 18 |
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)). |
