Can not use mnesia disc_copies
Yao Bao
by@REDACTED
Sat Oct 31 15:32:40 CET 2020
Hello,
I have a web application which uses mnesia as the database.
Everything works fine when I use ram_copies.
However, I would like to use disc_copies for production. Then, I encounter an error when I start the database:
==== begin ====
X = mnesia:create_schema([node()])
X = {error,{nonode@REDACTED,{already_exists,nonode@REDACTED}}}
==== end ====
The output of mnesia:info/0 is (from `$ rebar3 shell`):
==== begin ====
---> Processes holding locks <---
---> Processes waiting for locks <---
---> Participant transactions <---
---> Coordinator transactions <---
---> Uncertain transactions <---
---> Active tables <---
schema : with 1 records occupying 428 words of mem
===> System info in version "4.18", debug level = none <===
opt_disc. Directory "/Users/by/projects/mlchat_server/db_data" is NOT used.
use fallback at restart = false
running db nodes = [nonode@REDACTED]
stopped db nodes = []
master node tables = []
remote = []
ram_copies = [schema]
disc_copies = []
disc_only_copies = []
[{nonode@REDACTED,ram_copies}] = [schema]
2 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
==== end ====
The "sys.config" for mnesia is:
{mnesia, [{dir, "./db_data"}]}
The documentation says:
mnesia:create_schema/1 fails if any of the Erlang nodes given as DiscNodes are not alive, if Mnesia is running on any of the nodes, or if any of the nodes already have a schema.
Here is the code to start the database:
start() ->
X = mnesia:create_schema([node()]),
Y = mnesia:start(),
Z = mnesia:create_table(chat_room,
[
{type, ordered_set},
{disc_copies, [node()]}, %% If I comment out this line, everything works fine.
{attributes, record_info(fields, chat_room)}
]),
io:format("==== X: ~p, Y: ~p, Z: ~p~n", [X, Y, Z]).
And here is the output:
1> ==== X: {error,{nonode@REDACTED,{already_exists,nonode@REDACTED}}}, Y: ok, Z: {aborted,
{bad_type,
chat_room,
disc_copies,
nonode@REDACTED}}
I guess my usage for mnesia might be wrong, but I have no clue.
Cheers,
Yao
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20201031/52010cf9/attachment.htm>
More information about the erlang-questions
mailing list