mnesia创建的时候需要指定表record结构,如果定义的record结构修改了,就要更新数据的表结构,否则mnesia无法正常读取和写入数据。
我们最开始是这样定义结构的
-record(person, {name, age}).
然后这样建表
mnesia:create_table(person, [{disc_only_copies, nodes()}, {attributes, record_info(fields,person)}]).
有一天我们改变了这个person结构
-record(person, {name, age, money}).
我们还可以读出mnesia的数据,但是不能匹配到现在的person结构了
> mnesia:dirty_read(person, lucy).
[{person,lucy,1}]
而且我们无法再写入数据
> mnesia:dirty_write(person, #person{name = lily, age = 2, money = 0}).
** exception exit: {aborted,{bad_type,#person{
name=lily,age=2, money