mnesia initialization
Karlo Kuna
kuna.prime@REDACTED
Fri Nov 8 16:29:44 CET 2019
thank you all,
but it seems that my problem is connected to "Cannot get connection id for
node" when mnesia starts
I'm having a node at name@REDACTED could that be the issue??
On Fri, Nov 8, 2019 at 6:46 AM I Gusti Ngurah Oka Prinarjaya <
okaprinarjaya@REDACTED> wrote:
> Hi,
>
> Make sure to:
>
> 1. Start your erlang node with -mnesia dir
> "/path/to/where/you/want/to/put/mnesia"
> 2. Create the schema first
> 3. start mnesia by using command mnesia:start()
> 4. The create your tables
>
> >> I have a db_init function that initializes db so that if tables do not
> exist they are created (ram with disc_copies)
> If you want to do a table existence detection, you can do like the
> following:
>
> case catch mnesia:table(your_table_name, version) of
> {{_, _}, []}
> -> table_exists;
>
> Fail when Fail =:=
> {'EXIT',{aborted,{no_exists,your_table_name,version}}}; Fail =:=
> {aborted,{no_exists,your_table_name,version}}
> -> %% create your your_table_name table
> end
>
> Also, as i stated above, you have to create your schema first then start
> mnesia application. Example:
>
> case mnesia:create_schema([node()]) of
> {error,{_,{already_exists,_}}} ->
> io:format("Schema Already exists~n");
>
> ok ->
> io:format("Schema Created~n")
> end,
>
> application:ensure_started(mnesia),
>
> %% then init your tables here
> %%
> %%
> .
>
> Please read http://erlang.org/doc/apps/mnesia/Mnesia_chap2.html
>
> >> However half of the time it destroys old table returning {atomic, ok}
> and another half it returns with already_exists
> I'm not sure with this. But maybe i think your schema location was not
> consistent
>
> I suggest you to use rebar3 to manage your project.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> Pada tanggal Jum, 8 Nov 2019 pukul 07.57 Karlo Kuna <kuna.prime@REDACTED>
> menulis:
>
>> Hi,
>>
>> I have problem with mnesia initialization,
>>
>> I have a db_init function that initializes db so that if tables do not
>> exist they are created (ram with disc_copies). For example:
>>
>> db_init() ->
>> mnesia:create_table(some_record,[{attributes, record_info(fields,
>> some_record)},
>> {type,
>> bag}, {disc_copies, [node()]}]).
>>
>> I'm running this function on the app start to make sure the table exists
>> and is ready.
>> However half of the time it destroys old table returning {atomic, ok} and
>> another half it returns with already_exists. Also, this happens in the
>> regular fashion, if I have n starts of application, even starts would
>> destroy data and even wold keeps old data. I know that I am missing
>> something probably obvious here but if anyone has any insights on why is
>> this happening and how to fix it I would greatly appreciate it.
>>
>> Thank You,
>> Karlo.
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20191108/dda7fae5/attachment.htm>
More information about the erlang-questions
mailing list