Битый час потратил, пытаясь написать программу сохраняющую запись в mnesia — и проиграл. Программка:
-module(m2).
-export([start/0]).
-record(test, {id, data}).
start() ->
io:format("Node: ~w~n", [node()]),
io:format("schema: ~w~n", [mnesia:create_schema([node()])]),
ok = mnesia:start(),
io:format("create: ~w~n", [mnesia:create_table(test,
[
{disc_copies, [node()]},
{type, bag},
{attributes, record_info(fields, test)}])]),
io:format("write: ~w~n", [mnesia:transaction(
fun() -> mnesia:write(#test{id = 1, data = "aaaa"}) end)]).
Запускаю.
$ erl -noshell -s m2 start -s init stop -sname node
Node: 'node@seva-work'
schema: ok
create: {atomic,ok}
write: {atomic,ok}
Работает. А еще раз:
$ erl -noshell -s m2 start -s init stop -sname node
Node: 'node@seva-work'
schema: {error,{'node@seva-work',{already_exists,'node@seva-work'}}} # да
create: {aborted,{already_exists,test}} # да
write: {aborted,{no_exists,test}} # как это, куда она делась ?
Не подскажет ли кто, что я делаю не так?
добавил форматирование — Кодт