gpt4 book ai didi

deployment - 如何以标准方式处理 mnesia 模式?

转载 作者:行者123 更新时间:2023-12-02 00:39:37 25 4
gpt4 key购买 nike

假设我有一个应用程序A,它依赖于存在磁盘启用模式的mnesia。我想做的是确保 mnesia 正在运行并允许disc_copies表来自A。我也在考虑多个应用程序需要访问 mnesia 的情况。

如果不将 mnesia 启动和模式创建硬编码到 A 的应用程序回调模块中,实现这种事情的最可移植(和标准)方法是什么?

当交互式开发时,我只是做一个

mnesia:create_schema([node()]).

在 Erlang shell 中初始化磁盘模式,然后使用

启动 mnesia 应用程序
mnesia:start().

最后启动其他依赖于存在的数据库的。

最佳答案

您可以在 .app 文件中列出依赖的应用程序,请参阅 {applications, Apps} 字段。这样你就可以确保应用程序不会在没有运行 mnesia 的情况下启动,并且在创建版本时,它可以生成一个脚本,在你的应用程序之前启动 mnesia。

由于 mnesia 模式可以持久化,创建模式不是您的应用程序在普通应用程序启动时需要做的事情。您可以编写一个脚本来根据需要设置架构。

当您的应用程序启动时,它可以使用 mnesia:wait_for_tables/2以确保表格可以使用。

关于deployment - 如何以标准方式处理 mnesia 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3134869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com