我有一个案例,我有一个Mnesia数据库,表格写入磁盘。当我停止我的应用程序然后重新启动它时,mnesia:info()告诉我
opt_disc. Directory "/my/directory/here" is NOT used.
和相应的mnesia:system_info(use_dir)为false。但是mnesia:system_info(目录)返回正确目录的名称,文件就在那里,它只是在一分钟前使用它们。有没有办法在启动时捕获它并告诉它使用磁盘中的现有数据?
如果我检查mnesia:table_info(schema,storage_type),它会告诉我ram_copies。如果我然后尝试mnesia:change_table_copy_type()它会写入磁盘,但最终会压缩我的所有数据。
答案 0 :(得分:1)
您需要做的是将Mnesia的dir应用程序变量设置为类似
table {
border-collapse: collapse;
}
td p {
margin: 0;
padding: 0;
}
您可以使用发布配置文件或命令行参数设置应用程序变量。
答案 1 :(得分:1)
这实际上是由于我自己的困惑。我们的部署过程正在消灭Mnesia目录,它在启动时重新创建。所以我没有看到它消失,但那就是为什么我的数据被压扁了。
use_dir为false,因为此时没有目录。然后,当我在架构上运行mnesia:change_table_copy_type()时,它正在创建该目录,但它没有数据。