Ho recentemente aggiornato il mio progetto phoenix in Ecto 2.0.2. Ho del codice che sta usando Task.Supervisor.async_nolink
per fare alcuni aggiornamenti al db sul proprio thread. Sto ottenendo il seguente errore quando il mio test eseguiti (si verifica solo nei miei test)Ecto 2.0 SQL Sandbox Errore nei test
[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
Ora io penso ho capito che cosa sta accadendo: Il pool di connessioni Ecto Sandbox viene controllato di nuovo in prima che la transazione db è completa . Secondo i documenti (almeno il modo in cui li ho letti) il modo per aggirare quella roba è usare un pool di connessioni condivise: Ecto.Adapters.SQL.Sandbox.mode(MyApp.Repo, {:shared, self()})
che sto facendo. Sfortunatamente questo non funziona.
Come configurare i miei test in modo che questo errore non si verifichi?
TLDR: non c'è soluzione. – Noma4i
Grazie per aver segnalato ciò che è stato trovato. Ho usato il feedback di Jose per risolvere il problema per me. Quindi, questa è la soluzione. –