Erlang:为mnesia指定工作目录?

Erlang:为mnesia指定工作目录?,erlang,mnesia,Erlang,Mnesia,如何为mnesia指定工作目录,而不必在命令行上传递“dir”参数 换句话说,我是否可以在调用'mnesia:start()'之前为mnesia指定一个“工作目录”?应用程序:set_env(mnesia,dir,dir)。除了在其他响应中提到的方法调用之外,您还可以在系统配置文件或使用-config参数指定的.app文件中指定它。有关更多信息,请参阅。这允许您将配置与代码分开,并避免大量命令行标志。在Erlang VM中启动了一个应用程序控制器进程应用程序\控制器:设置\环境是此流程的“API

如何为
mnesia
指定工作目录,而不必在命令行上传递“dir”参数


换句话说,我是否可以在调用'mnesia:start()'之前为mnesia指定一个“工作目录”?

应用程序:set_env(mnesia,dir,dir)。
除了在其他响应中提到的方法调用之外,您还可以在系统配置文件或使用-config参数指定的.app文件中指定它。有关更多信息,请参阅。这允许您将配置与代码分开,并避免大量命令行标志。

在Erlang VM中启动了一个应用程序控制器进程<代码>应用程序\控制器:设置\环境是此流程的“API”<代码>应用程序:set_env是一个更抽象的调用,它只处理应用程序。毫无疑问,尽管目前它只调用该API。为了回答以下问题:),我认为应用程序控制器服务器和模块的存在应该被视为“实现细节”,因此正确的方法是使用应用程序模块。我有一个类似的情况。。。我不想从代码内部设置mnesia dir。。。请详细说明如何使用应用程序的.app文件为其他应用程序设置env变量。不过,我理解如何使用.config文件来实现这一点。e、 g.我的应用程序文件是test.app,它在“应用程序”部分列出了mnesia,所以当我启动“测试”时,mnesia会自动启动。如何使用test.app将“dir”值传递给mnesia?相关文档如下:特别是应用程序文件spec中的env元组。可以使用set_env()设置的任何内容也可以在此处或命令行上设置。