Как очистить базу данных с помощью Repo

В частности, у меня есть приложение Phoenix, использующее Ecto и Repo. Я хотел бы очищать свою базу данных после запуска каждого теста Exunit, который изменяет базу данных.

Один из способов сделать это — запустить все функции change в миграции в каталоге priv/repo/migrations/, но я чувствую, что должен быть более приятный способ.

Возможно, что-то вроде запуска функции flush?


person Sam Houston    schedule 02.03.2017    source источник
comment
Что означает очистить вашу базу данных?   -  person michalmuskala    schedule 02.03.2017
comment
Извините за неясность, я имел в виду удаление всех данных во всех таблицах   -  person Sam Houston    schedule 02.03.2017


Ответы (2)


Я полагаю, что это уже сделано для вас при запуске Ecto в режиме песочницы, таким образом, Phoenix создает тестовые примеры.

person bratsche    schedule 02.03.2017

Если вы хотите собрать эти тесты с побочными эффектами в один файл, вы можете использовать setup обратный вызов, например:

setup do
  for model <- [list modules you want to clear], do: Repo.delete_all(model)
end
person PatNowak    schedule 02.03.2017