diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2010-10-19 13:24:16 +0100 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2010-10-19 13:24:16 +0100 |
| commit | 595a7c5b73fe89b5916dc3fba1d75b8ce9189a1a (patch) | |
| tree | f073b843d2fb5c01b97e68aec4c533e674fa54ce | |
| parent | fec42446f2b755b9eef1c4bfa0f6df8c7699bc2b (diff) | |
| download | rabbitmq-server-git-595a7c5b73fe89b5916dc3fba1d75b8ce9189a1a.tar.gz | |
Use mnesia:transform_table
| -rw-r--r-- | src/rabbit_upgrade.erl | 21 | ||||
| -rw-r--r-- | src/rabbit_upgrades.erl | 21 |
2 files changed, 12 insertions, 30 deletions
diff --git a/src/rabbit_upgrade.erl b/src/rabbit_upgrade.erl index 5f503fa244..62658fbbd1 100644 --- a/src/rabbit_upgrade.erl +++ b/src/rabbit_upgrade.erl @@ -31,7 +31,6 @@ -module(rabbit_upgrade). -export([maybe_upgrade/1, write_version/1]). --export([mnesia_alter_column/3]). -include("rabbit.hrl"). @@ -69,26 +68,6 @@ write_version(Dir) -> digraph:delete(G), ok. -%% ------------------------------------------------------------------- - -mnesia_alter_column(Table, Column, Fun) -> - {atomic, _} = - mnesia:transaction( - fun() -> - [mnesia_alter_column_for_key(Table, Column, Key, Fun) - || Key <- mnesia:all_keys(Table)] - end), - ok. - -mnesia_alter_column_for_key(Table, Column, Key, Fun) -> - Vals = mnesia:read(Table, Key, write), - ok = mnesia:delete(Table, Key, write), - [mnesia_alter_column_for_value(Table, Column, Val, Fun) || Val <- Vals]. - -mnesia_alter_column_for_value(Table, Column, Val, Fun) -> - Val2 = setelement(Column + 1, Val, Fun(element(Column + 1, Val))), - mnesia:write(Table, Val2, write). - %% Graphs ------------------------------------------------------------ load_graph() -> diff --git a/src/rabbit_upgrades.erl b/src/rabbit_upgrades.erl index 50c97bb6bb..17a232c304 100644 --- a/src/rabbit_upgrades.erl +++ b/src/rabbit_upgrades.erl @@ -38,15 +38,18 @@ %%-------------------------------------------------------------------- -%% TODO this is just a hack, on branch bug23319 this should use the real -%% permission record +%% TODO this is just a hack, when branch bug23319 is merged this should use +%% the real permission record -record(permission2, {configure, write, read}). remove_user_scope() -> - rabbit_upgrade:mnesia_alter_column( - rabbit_user_permission, 2, - fun({permission, _Scope, Conf, Write, Read}) -> - #permission2{configure = Conf, - write = Write, - read = Read} - end). + {atomic, ok} = mnesia:transform_table( + rabbit_user_permission, + fun(Perm = #user_permission{ + permission = {permission, _Scope, Conf, Write, Read}}) -> + Perm#user_permission{ + permission = #permission2{configure = Conf, + write = Write, + read = Read}} + end, + record_info(fields, user_permission)). |
