"shutdown: не удалось запустить дочерний элемент: DBConnection.Ownership.Manager" после обновления библиотеки с Ecto 1 на Ecto 2
У меня есть библиотека, которая использует Ecto и Postgrex (Postgrex используется только в тестах).
После обновления с Ecto 1 до Ecto 2 набор тестов начал выдавать эту ошибку:
$ mix test
Compiling 4 files (.ex)
Generated ectoo app
** (EXIT from #PID<0.46.0>) shutdown: failed to start child: DBConnection.Ownership.Manager
** (EXIT) exited in: GenServer.call(DBConnection.Ownership.PoolSupervisor, {:start_child, [#PID<0.175.0>, Postgrex.Protocol, [pool: DBConnection.Poolboy, types: true, hostname: "localhost", types: true, otp_app: :ectoo, repo: Ectoo.Repo, adapter: Ecto.Adapters.Postgres, database: "ectoo_test", username: "henrik", pool_timeout: 5000, timeout: 15000, adapter: Ecto.Adapters.Postgres, database: "ectoo_test", username: "henrik", extensions: [{Ecto.Adapters.Postgres.DateTime, []}, {Postgrex.Extensions.JSON, [library: nil]}], port: 5432]]}, :infinity)
** (EXIT) no process
Есть идеи?
1 ответ
Я исправил это, убедившись, что postgrex
приложение работает, когда запускаются тесты.
В mix.exs:
def application do
[applications: applications(Mix.env)]
end
defp applications(:test), do: [:logger, :postgrex]
defp applications(_), do: [:logger]