Ridiculuous newbie mnesia question.
Jeffrey Rennie
surferjeff@REDACTED
Sun Oct 24 23:37:23 CEST 2010
I seem to be stuck in a state where I can't create a table because it
exists, but I can't delete the table because it doesn't exist!
I searched the mnesia documentation, and I couldn't find a definition
of the "Tab" arg passed to many mnesia functions.
Here's what I tried:
Eshell V5.7.5 (abort with ^G)
2> c(backgammon).
{ok,backgammon}
5> c(backgammon).
{ok,backgammon}
7> mnesia:start().
ok
8> backgammon:init().
{atomic,ok}
11> c(backgammon).
{ok,backgammon}
12> backgammon:dumpfields().
[player_turn,dice,board]
13> c(backgammon).
{ok,backgammon}
14> backgammon:init().
{aborted,{already_exists,backgammon_games}}
15> mnesia:info().
---> Processes holding locks <---
---> Processes waiting for locks <---
---> Participant transactions <---
---> Coordinator transactions <---
---> Uncertain transactions <---
---> Active tables <---
schema : with 2 records occupying 546 words of mem
===> System info in version "4.4.13", debug level = none <===
opt_disc. Directory
"c:/Users/jeff/code/code/scratch/erlang/Mnesia.nonode@REDACTED" is NOT
used.
use fallback at restart = false
running db nodes = [nonode@REDACTED]
stopped db nodes = []
master node tables = []
remote = [backgammon_games]
ram_copies = [schema]
disc_copies = []
disc_only_copies = []
[] = [backgammon_games]
[{nonode@REDACTED,ram_copies}] = [schema]
3 transactions committed, 1 aborted, 0 restarted, 0 logged to disc
0 held locks, 0 in queue; 0 local transactions, 0 remote
0 transactions waits for other nodes: []
ok
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% BEGIN CONFUSING BIT
17> mnesia:delete_table(backgammon_games).
{aborted,{no_exists,backgammon_games}}
18> backgammon:init().
{aborted,{already_exists,backgammon_games}}
19>
%% END CONFUSING BIT
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Here's my backgammon.erl:
-module(backgammon).
-compile(export_all).
-include("backgammon.hrl").
create_tables(MnesiaNodes) ->
mnesia:create_table(backgammon_games,
[{attributes, record_info(fields, game_record)},
{ram_copies, MnesiaNodes}]).
init() ->
create_tables([a@REDACTED, b@REDACTED]).
dumpfields() ->
record_info(fields, game_state).
More information about the erlang-questions
mailing list