0

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

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

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

一旦进入外壳,您就可以创建架构/等...

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

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

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

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

1 回答 1

1

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

application:set_env(mnesia, dir, "/tmp/funcky"),
mnesia:create_schema([node()]),
etc...
于 2013-02-25T22:08:26.467 回答