gpt4 book ai didi

erlang - Mnesia - 指定存储策略时因 bad_type 中止

转载 作者:行者123 更新时间:2023-12-03 09:12:15 25 4
gpt4 key购买 nike

所以我得到{aborted,{bad_type,link,disc_copies, '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b2dfcbedc1d7c0c4d7c0f28380859c829c829c83" rel="noreferrer noopener nofollow">[email protected]</a>'}} (它由我的 init_db/0 函数返回):

-record(link, {hash, original, timestamp}).
init_db() ->
application:set_env(mnesia, dir, "/tmp/mnesia_db"),
mnesia:create_schema([node()]),
mnesia:start(),
mnesia:create_table( link,[
{index,[timestamp]},
{attributes, record_info(fields, link)},
{disc_copies, [node()]}]).

没有{disc_copies, [node()]}表已正确创建。

最佳答案

验证您通过 application:set_env/3 指定的 mnesia 目录的父目录的写入权限。如果 mnesia dir 父目录不允许您写入,您将收到此错误。 (出现此错误的另一种方法是忘记完全设置 mnesia dir,但您的 set_env 调用显然就是这样做的。)

更新:更仔细地查看您报告的错误,我发现错误中提到的节点不在列表中:

{aborted,{bad_type,link,disc_copies, '[email protected]'}}

这可能意味着您在问题中显示的代码与实际运行的代码不匹配。具体来说,如果您调用 mnesia:create_table/2 传递一个节点而不是 disc_copies 元组中的节点列表,如下所示,您将得到相同的错误:

mnesia:create_table(link,[{index,[timestamp]},
{attributes, record_info(fields, link)},
{disc_copies, node()}]). % note no list here, should be [node()]

关于erlang - Mnesia - 指定存储策略时因 bad_type 中止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41225552/

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