解決できないように見える問題が発生しています。関数mnesia:change_table_copy_type(schema、node()、disc_copies)を渡す必要があります。コマンドラインで、dbがマスターノードから作成されます。erlの開始は次のとおりです。erl-nameNODE1-mnesia extra_db_nodes \ "['MASTER'] \" -s mnesiaシェルを起動してから関数呼び出しに入ると、すべてが正常に機能し、シェルを停止してejabberプロセスを正常に開始できます。 。したがって、必要なのは、DBのセットアップと同期を実行するためのスクリプト化されたメソッドです。
change_table_copy_typeを渡すためにさまざまな方法を試しましたが、成功しませんでした。最終的な目標は、mnesiaを開始するプロセスをスクリプト化し、関数を渡してから、シェルを終了できるようにすることです。誰かがこれを試したことがありますか?次のようなリダイレクトを試しました:erl -name NODE1 -mnesia extra_db_nodes \ "['MASTER'] \" -s mnesia <
関数呼び出しが渡されたときにノードが開始されないため、これは失敗します。「-run」オプションを使用しようとしましたが、関数がundefであるというエラーが発生します。たぶん私は-runセクションを正しく構築していません。