2009年10月20日

Mnesiaでテーブル構造を変えたときは

Erlangの標準データベース管理システム「Mnesia」は-recordからテーブル構造をつくれたり、保存できるデータもErlangのデータ構造と親和性が高かったりと、非常に便利です。

が、「プログラミングErlang」のMnesiaの説明はちょっとだけ不親切というか、サンプルコードを変更して自分用にいろいろしていくときに肝心な説明が抜けてる。

テーブル構造を変えたときにどう作り直すかが書かれてない。まあ、仕方ないのかもしれないけど、とりあえ初学者はハマると思う。少なくとも自分ははまりました。

対処としてシンプルなのは、ノードが保存している古い情報をクリアしてテーブル構造の構築からやりなおさせるという手順。

mnesia:stop(), mnesia:delete_schema([node()]).

です。

これであらためてdo_this_once()←サンプルにあるデーブル初期化コードから実行すれば、あたらしいテーブル構造が使えるようになります。

たぶんdelete_schemaではなくテーブル単位での消去もあると思うけど、とりあえず自分のメモもかねてこれを記録しておきます、はい。
posted by へろ at 00:33| Comment(1) | TrackBack(0) | Erlang
この記事へのコメント
Erlangのmnesiaでテーブルをドロップする方法をネット検索しているときに、このページにたどり着きました。
テーブルの削除は、mnesia:delete_table/1(引数はテーブル名のアトム)で可能です。
Posted by at 2012年05月06日 17:08
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/33046847

この記事へのトラックバック