[erlang-questions] Mnesia schema deployment best practice

Chandru <>
Mon Nov 17 13:03:06 CET 2008


Hi Dan,

2008/11/17 <>

>  Hi,
>
> I am getting to the point where I need to automate the release of all the
> components in my app.
>
> Obviously the Mnesia schema will only need to be executed the first time
> the app is launched and not every time the app is started there after.
>
> What is the standard practice for releasing an Mnesia schema and seeding
> the DB as a one of at initial release?
>
>
"It depends" is the answer. I'm not sure of standard practice, but we
basically include it as part of the installation procedure for a service. If
it is part of a network of mnesia nodes, you could create one by hand, and
then make other nodes join the schema as they come up. I'm personally not
comfortable with a node creating a schema automatically when it can't find
one, because there can be all sorts of operational reasons for a schema not
existing. If you are talking about long lived nodes, it is a good idea to
create the schema manually, before you run the node at full steam.

You'll need the following functions to make a new node join an existing
schema.

mnesia:add_table_copy/3
mnesia:change_table_copy_type/3
mnesia:change_config/2

The User Guide for mnesia details the procedure.

cheers
Chandru
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20081117/0aea322b/attachment.html>


More information about the erlang-questions mailing list