2013-02-25 53 views
0

这应该是简单的,但我不能找到一种方法或例如尚未建立的Mnesia ...从一个Erlang模块

Mnesia的文档说明了如何初始化/创建Erlang的外壳,它需要一个数据库的Mnesia开始与-mnesia参数ERL壳:

erl -mnesia dir '"/tmp/funky"' 

一旦外壳,您可以创建架构的/ etc ...

>mnesia:create_schema([node()]). 
ok. 
>mnesia:start(). 
ok. 

好,这是很简单的。如果我想从另一个erlang模块创建模式/ etc,并且我没有使用-mnesia parateter /标志启动该过程,该怎么办?我认为这基本上意味着,如何动态地,不用运行脚本,而是从纯粹的erlang代码方法。例如,我想这样做:

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

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

回答

1

嗯,我想我找到了解决方案。 set_env是我需要的:

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