Я изучаю Эликсир и нуждаюсь в некоторой помощи. У меня есть простое приложение, которое использует mnesia
(а не Amnesia
). Когда я начинаю mnesia
я:Обработка тестов и баз данных Dev Mnesia в Elixir
:mnesia.create_schema([node()])
:mnesia.create_table(Table, [attributes: [:id, :name]])
:mnesia.start
Это создает каталог [email protected]
. Я хочу иметь как минимум две разные базы данных, одну для тестов и одну для разработки. Я сейчас проверяю это, используя Mix.env
. Я планирую стирать тестовую базу данных каждый раз, когда мое приложение останавливается и создает его каждый раз, когда он запускается (используя методы start
и stop
).
каталог данных, созданный mnesia
принимает имя Erlang VM, поэтому я думаю, мне нужно назвать свои виртуальные машины в соответствии с окружающей средой (:dev
, :test
или :prod
).
Возможно ли это? Правильно ли это?
Update
Я знаю, что я могу выбрать, где данные мою базу данных Mnesia хранится (спасибо Марины). Но когда я указать «обычай» каталог, у меня есть это странное поведение:
iex(1)> :mnesia.system_info()
===> System info in version {mnesia_not_loaded,[email protected],
{1486,66262,472243}}, debug level = trace <===
opt_disc. Directory <<"/my/custom/dir">> is NOT used.
use fallback at restart = false
running db nodes = []
stopped db nodes = [[email protected]]
:no
Так что я могу видеть, что он знает, где я хочу, чтобы хранить свои данные, однако это говорит мне «не используется». Я не знаю, почему ... Тогда
iex(2)> :mnesia.create_schema([node()])
{:error, {:EXIT, :function_clause}}
Это не помогает создавать схемы (отлично работает, когда я не указать «пользовательский» каталог). Есть идеи?
Update 2
ДОЛЖНЫ использовать одинарные кавычки путь к каталогу (не знаю почему)
вы можете получить доступ к databa путем определения реж http://stackoverflow.com/questions/21150613/в-есть-а-встроенный-механизм-для-нас к пуску-Mnesia-в-эликсира. line iex (2)>: приложение.set_env (: mnesia,: dir, 'sample') –
Спасибо, Maryna за ваш вклад, он помог, но все еще сталкивается с проблемами ... – rmonjo
Я вижу обновление, возможно, он ждет атома –