是否有内置机制让我们在Elixir中推出Mnesia?

Noa*_*ues 2 mnesia elixir

我们似乎只能通过打字来启动Mnesia iex --erl "--mnesia dir '~/doc/'" --name mynode.

我们可以在不将参数传递给erl的情况下启动吗?

Jos*_*lim 6

您可以在代码中动态设置它.--erl上面的所有指令都是在启动之前配置mnesia应用程序.你可以通过以下方式实现:

# First load mnesia
iex(1)> :application.load(:mnesia)
:ok
# Now configure the desired directory
iex(2)> :application.set_env(:mnesia, :dir, 'sample')
:ok
# Start mnesia as usual
iex(3)> :mnesia.start
:ok
# See if the desired info is correct
iex(4)> :mnesia.info
:ok
Run Code Online (Sandbox Code Playgroud)

请注意,只有手动启动应用程序才有效.如果您是自动启动它并希望通过命令行进行配置,那么您当前的代码段是最佳选择(或使用ELIXIR_ERL_OPTS).