我有一個使用Mnesia數據庫的Elixir應用程序。它工作正常,我可以存儲和檢索數據沒有問題。我現在正在考慮如何備份該數據庫,並通過閱讀文檔,發現有一個應該做我想做的功能的:mnesia.backup
函數。然而,當我打電話吧,我得到:使用Elixir備份Mnesia數據庫
:mnesia.backup("myfile") {:error, {:EXIT, {:error, :function_clause}}}
,並將日誌顯示此:
[error] Mnesia(:[email protected]): ** 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('myfile')'。 – Dogbert
這是行得通的,並證明我仍然需要讓我的頭腦在Elixir中的二進制文件,字符串和char列表之間的區別,謝謝!你介意讓這個答案,以便我可以接受它作爲正確的答案嗎? –
基本上 - Erlang沒有字符串,只是charlists,所以在Erlang模塊中使用字符串不起作用。 – PatNowak