Недавно я обновил проект phoenix до Ecto 2.0.2. У меня есть код, который использует Task.Supervisor.async_nolink
, чтобы сделать некоторые обновления для db в своем потоке. Я получаю следующее сообщение об ошибке, когда мои тесты запуска (происходит только на моих тестах)Ecto 2.0 SQL Sandbox Ошибка при тестах
[error] Postgrex.Protocol (#PID<0.XXX.0>) disconnected: **
(DBConnection.ConnectionError) owner #PID<0.XXX.0> exited while
client #PID<0.XXX.0> is still running with: shutdown
Теперь я думаю я понимаю Что происходит: Подключение бассейна Ecto Песочница проверяется назад прежде, чем сделка дб завершена , Согласно документам (по крайней мере, так, как я их читал), способ обойти это - использовать общий пул соединений: Ecto.Adapters.SQL.Sandbox.mode(MyApp.Repo, {:shared, self()})
, который я делаю. К сожалению, это не работает.
Как настроить мои тесты, чтобы эта ошибка не возникала?
TLDR: нет решения. – Noma4i
Спасибо за сообщение о том, что было найдено. Я использовал отзывы Хосе, чтобы решить проблему для меня. Таким образом, это решение. –