0

方法や例はまだ見つかりませんでしたが、これは簡単なはずです...

Mnesia のドキュメントには、erlang シェルから Mnesia データベースを初期化/作成する方法が示されています。これには、-mnesia パラメータを使用して erl シェルを起動する必要があります。

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

シェルに入ったら、スキーマなどを作成できます...

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

まあ、それは簡単です。別の erlang モジュールから schema/etc を作成したいのですが、プロセスを -mnesia パラメータ/フラグで開始しなかった場合はどうなりますか? 基本的には、スクリプトを実行せずに、純粋な 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 に答える