从erlang模块创建mnesia

从erlang模块创建mnesia,erlang,mnesia,Erlang,Mnesia,这应该很简单,虽然我还没有找到一个方法或例子 Mnesia文档说明了如何从erlang shell初始化/创建Mnesia数据库,这需要使用-Mnesia参数启动erl shell: erl -mnesia dir '"/tmp/funky"' 一旦进入shell,您就可以创建schema/etc >mnesia:create_schema([node()]). ok. >mnesia:start(). ok. 这很简单。如果我想从另一个erlang模块创建schema/etc,

这应该很简单,虽然我还没有找到一个方法或例子

Mnesia文档说明了如何从erlang shell初始化/创建Mnesia数据库,这需要使用-Mnesia参数启动erl shell:

erl -mnesia dir '"/tmp/funky"'
一旦进入shell,您就可以创建schema/etc

>mnesia:create_schema([node()]).
ok.
>mnesia:start().
ok.
这很简单。如果我想从另一个erlang模块创建schema/etc,而我没有使用-mnesia parameter/flag启动该过程,该怎么办?我认为这基本上意味着,如何在不运行脚本的情况下,通过纯erlang代码方法动态地执行。例如,我想做这样的事情:

-module(something).
-export([test/0]).

test() ->
    erlang:setParameter("mnesia","/tmp/funcky"),
    mnesia:create_schema([node()]),
    ...

我想我找到了解决办法。set_env是我所需要的:

application:set_env(mnesia, dir, "/tmp/funcky"),
mnesia:create_schema([node()]),
etc...