From ef5d291201907091dd106b5439927900120dcdca Mon Sep 17 00:00:00 2001 From: Gigitsu Date: Fri, 22 Aug 2025 19:12:14 +0200 Subject: [PATCH] Allow explicitly passing a dynamic repo to Ecto.Adapters.SQL.Sandbox.checkout/1 --- lib/ecto/adapters/sql/sandbox.ex | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/ecto/adapters/sql/sandbox.ex b/lib/ecto/adapters/sql/sandbox.ex index b2527653..44e9a9ed 100644 --- a/lib/ecto/adapters/sql/sandbox.ex +++ b/lib/ecto/adapters/sql/sandbox.ex @@ -646,8 +646,11 @@ defmodule Ecto.Adapters.SQL.Sandbox do meta end - defp find_repo(repo) when is_atom(repo), do: repo.get_dynamic_repo() - defp find_repo(repo), do: repo + defp find_repo(repo) do + if is_atom(repo) and Code.ensure_loaded?(repo), + do: repo.get_dynamic_repo(), + else: repo + end defp post_checkout(conn_mod, conn_state, opts) do case conn_mod.handle_begin([mode: :transaction] ++ opts, conn_state) do