Как создать мнезию в эликсире?
Как создать :mnesia
столик в эликсире? Есть ли способ добавить индексы при создании?
Например, я хочу создать таблицу User с несколькими атрибутами.
2 ответа
Вот как это сделать:
:mnesia.start
:mnesia.create_table(
User,
[{:disc_copies, [node()]},
attributes: [:id, :name, :job],
index: [:name, :job]
])
Обратите внимание, что первый атрибут будет проиндексирован по умолчанию. Для получения дополнительной информации посетите http://elixirschool.com/en/lessons/specifics/mnesia/
Вам также необходимо создать схему перед созданием таблицы. Обратите внимание, что первый атрибут будет проиндексирован на узле? по умолчанию. Для получения дополнительной информации посетите elixirschool.com/en/lessons/specifics/mnesia/#starting-mnesia
Работа с интерфейсом Erlang Mnesia в Elixir может быстро стать утомительной. Другой вариант заключается в использовании библиотеки, как Memento
, Amnesia
или же EctoMnesia
,
Вот как бы вы определили таблицу в Memento:
defmodule MyApp.User do
use Memento.Table, attributes: [:id, :name, :email], index: [:email]
ennd
и создайте это:
Memento.Table.create!(MyApp.User)
Полное раскрытие: я автор Memento.