Database / Mnesia basics Interview questions
What is mnesia:transform_table/3 used for?
mnesia:transform_table(Table, Fun, NewAttributes) rewrites every record in a table according to
a supplied function, and updates the table's declared attribute list to match the new shape — the
primary tool for evolving a table's schema after data already exists in it.
mnesia:transform_table(person, fun({person, Id, Name, Age}) -> {person, Id, Name, Age, undefined} %% add an email field, default undefined end, [id, name, age, email]).
The transform function receives each existing record and must return the new-shaped record; Mnesia applies this to every row in the table as part of the operation. It's typically run once during a planned schema upgrade (often alongside a release upgrade), rather than something you'd call routinely as part of everyday application logic.
More Related questions...