Search code examples
elixirmnesia

:mnesia disk_copeis not working for my Elixir


> alias :mnesia, as: Mnesia
> Mnesia.create_schema([node()])
> fields = [:id, :to, :from, :body, :format, :metadata]
> Mnesia.create_table(:mail, [attributes: fields, disc_copies: [node()]] )

{:aborted, {:bad_type, :mail, :disc_copies, :nonode@nohost}}

If I do

iex(5)> Mnesia.create_table(:mail, [attributes: fields] )
{:atomic, :ok}

Everything is fine, however this is only created in RAM

How do I make :mnesia to store on Disk.

Thanks


Solution

  • Mnesia isn't started correctly.

    iex(1)> :mnesia.create_schema([node()])
    :ok
    iex(2)> fields = [:id, :to, :from, :body, :format, :metadata]
    [:id, :to, :from, :body, :format, :metadata]
    iex(3)> :mnesia.start
    :ok
    iex(4)> :mnesia.create_table(:mail, [attributes: fields, disc_copies: [node()]] )
    {:atomic, :ok}