# Having Difficulty Adding a Node to mnesia

**URL:** <https://erlangforums.com/t/having-difficulty-adding-a-node-to-mnesia/3298>\
**Category:** Questions / Help\
**Tags:** mnesia\
**Created:** [February 13, 2024, 7:16pm UTC](https://erlangforums.com/t/having-difficulty-adding-a-node-to-mnesia/3298 "2024-02-13T19:16:18Z")\
**Posts on this page:** 1\
**Page:** 2

<div class="post-metadata">

**Author:** ![HasithaDAdikari](https://erlangforums.com/user_avatar/erlangforums.com/hasithadadikari/32/1436_2.png) [@HasithaDAdikari](https://erlangforums.com/u/HasithaDAdikari)\
**Post date:** [July 11, 2024, 1:02pm UTC](https://erlangforums.com/t/having-difficulty-adding-a-node-to-mnesia/3298/21 "2024-07-11T13:02:34Z")

</div>

The following code might help you to set up Mnesia cluster,

```erlang
start_phase(init_mnesia, _StartType, []) ->
    case nodes() of
        [] ->
            ok = setup_mnesia_initial_node();
        _ ->
            ok = join_mnesia_cluster()
    end.

setup_mnesia_initial_node() ->
    _ = mnesia:start(),
    _ = mnesia:create_schema([node()]),
    _ = mnesia:change_table_copy_type(schema, [node()], disc_copies),
    ok = create_table([node()]),
    ok = mnesia:wait_for_tables([?TABLE_NAME], 5000),
    ok.

join_mnesia_cluster() ->
    _ = mnesia:stop(),
    ok = mnesia:delete_schema([node()]),
    _ = mnesia:start(),
    {ok,[_]} = rpc:call(InitialNode, mnesia, change_config, [extra_db_nodes, [node()]]),
    {atomic,ok} = mnesia:change_table_copy_type(schema, node(), disc_copies),
    {atomic,ok} = mnesia:add_table_copy(?TABLE_NAME, node(), disc_copies),
    ok = mnesia:wait_for_tables([?TABLE_NAME], 5000),
    ok.
    
create_table(Nodes) ->
    TableOpts = [{attributes, record_info(fields, ?TABLE_NAME)},
                 {disc_copies, Nodes},
                 {record_name, ?TABLE_NAME},
                 {type, ordered_set}],

    case mnesia:create_table(?TABLE_NAME, TableOpts) of
        {atomic, ok} -> ok;
        {aborted, {already_exists, ?TABLE_NAME}} -> ok;
        {aborted, Reason} -> {error, Reason}
    end.

```

[Previous page](https://erlangforums.com/t/having-difficulty-adding-a-node-to-mnesia/3298.md?page=1)
