如何在 Elixir 中创建 mnesia table?

How to create mnesia table in Elixir?

如何在 Elixir 中创建 :mnesia table? 有没有办法在创建时添加索引?

例如,我想创建一个具有少量属性的用户 table。

操作方法如下:

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

请注意,默认情况下第一个属性将被编入索引。 如需更多信息,请访问 elixirschool.com/en/lessons/specifics/mnesia/#starting-mnesia

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

在 Elixir 中使用 Erlang 的 Mnesia 界面很快就会变得乏味。另一种选择是使用像 Memento, Amnesia or EctoMnesia.

这样的库

以下是您在 Memento 中定义 table 的方式:

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

并创建它:

Memento.Table.create!(MyApp.User)

完全披露: 我是 Memento.

的作者