使用 Elixir 备份 Mnesia 数据库
Backing up a Mnesia database with Elixir
我有一个使用 Mnesia 数据库的 Elixir 应用程序。它工作正常,我可以毫无问题地存储和检索数据。我现在正在研究如何备份该数据库,并且通读了文档,发现有一个 :mnesia.backup
函数可以执行我想要的操作。但是,当我调用它时,我得到:
:mnesia.backup("myfile")
{:error, {:EXIT, {:error, :function_clause}}}
日志显示:
[error] Mnesia(:nonode@nohost): ** ERROR ** Failed to abort backup. :mnesia_backup::abort_write["myfile"] -> {:badrecord, :backup}
日志中的那一行令人困惑,因为我根本没有尝试中止备份。
:function_clause
错误表明在某处传递了无效参数,因此我在线搜索以查看我应该传递给 backup
函数的内容(Erlang 文档对此特别不清楚)并找到了这个问题表明它应该是备份文件的名称:what is the proper way to backup/restore a mnesia database?
我查看了 mnesia 代码,看看是否能找到任何明显但没有乐趣的东西。
有人可以告诉我我做错了什么吗?
我在 Ubuntu 16.04 上使用 Elixir 1.4.1 和 Erlang/OTP 19,我有一个基本代码示例可以在需要时演示问题。
:mnesia.backup
接受一个 charlist 作为文件名,在 Erlang 语法中用双引号书写,在 Elixir 中用单引号书写。以下应该有效:
:mnesia.backup('myfile')
如果您了解 Elixir 语法,我强烈建议您阅读此 official Elixir crash course 以快速掌握 Erlang 语法,反之亦然。
我有一个使用 Mnesia 数据库的 Elixir 应用程序。它工作正常,我可以毫无问题地存储和检索数据。我现在正在研究如何备份该数据库,并且通读了文档,发现有一个 :mnesia.backup
函数可以执行我想要的操作。但是,当我调用它时,我得到:
:mnesia.backup("myfile")
{:error, {:EXIT, {:error, :function_clause}}}
日志显示:
[error] Mnesia(:nonode@nohost): ** ERROR ** Failed to abort backup. :mnesia_backup::abort_write["myfile"] -> {:badrecord, :backup}
日志中的那一行令人困惑,因为我根本没有尝试中止备份。
:function_clause
错误表明在某处传递了无效参数,因此我在线搜索以查看我应该传递给 backup
函数的内容(Erlang 文档对此特别不清楚)并找到了这个问题表明它应该是备份文件的名称:what is the proper way to backup/restore a mnesia database?
我查看了 mnesia 代码,看看是否能找到任何明显但没有乐趣的东西。
有人可以告诉我我做错了什么吗?
我在 Ubuntu 16.04 上使用 Elixir 1.4.1 和 Erlang/OTP 19,我有一个基本代码示例可以在需要时演示问题。
:mnesia.backup
接受一个 charlist 作为文件名,在 Erlang 语法中用双引号书写,在 Elixir 中用单引号书写。以下应该有效:
:mnesia.backup('myfile')
如果您了解 Elixir 语法,我强烈建议您阅读此 official Elixir crash course 以快速掌握 Erlang 语法,反之亦然。