如何在Elixir中创建Mnesia表?

时间:2018-09-17 02:50:25

标签: database elixir mnesia

如何在Elixir中创建:mnesia表? 有没有一种在创建时添加索引的方法?

例如,我想创建一个属性很少的User表。

2 个答案:

答案 0 :(得分:2)

这是方法:

:mnesia.start
:mnesia.create_table(
    User, 
   [{:disc_copies, [node()]}, 
     attributes: [:id, :name, :job], 
     index: [:name, :job]
   ])

请注意,默认情况下将对第一个属性建立索引。 有关更多信息,请访问elixirschool.com/en/lessons/specifics/mnesia/#starting-mnesia

在创建表之前,您还需要创建模式。 注意第一个属性将被索引到节点吗?默认情况下。有关更多信息,请访问elixirschool.com/en/lessons/specifics/mnesia/#starting-mnesia

答案 1 :(得分:2)

在Elixir中使用Erlang的Mnesia界面很快会变得很累。另一种选择是使用MementoAmnesiaEctoMnesia之类的库。

这是在Memento中定义表格的方式:

defmodule MyApp.User do
  use Memento.Table, attributes: [:id, :name, :email], index: [:email]
ennd

并创建它:

Memento.Table.create!(MyApp.User)

全面披露::我是Memento的作者。