Actually my database is a very simple module that does binary parser and write it to disk using file name as identifier, I did not learn ecto yet.
I managed to make it work using the setup
macro as following:
setup do
# Get the pids of all currently alive processes
accounts_used_pids =
DynamicSupervisor.which_children(Account.Cache)
|> Stream.map(fn entry ->
case entry do
{_, pid, :worker, [Account.Server]} -> pid
_ -> nil
end
end)
|> Enum.filter(fn ele -> ele !== nil end)
# Terminate all processes
Enum.each(accounts_used_pids, &Process.exit(&1, :clean_up))
# Reset the "database"
File.rm_rf(Account.Database.folder_path())
File.mkdir_p!(Account.Database.folder_path())
:ok
end
It might not be the optimal solution, but work for me! Thank you so much for the help!