config/*.exsに指定する接続先DB以外のDBも、普通にselectできる
def a(), do: "select * from a.users" |> query
def b(), do: "select * from b.users" |> query
def query( sql ) when sql != "" do
{ :ok, result } = Ecto.Adapters.SQL.query( Livery.Repo, sql, [] )
result
end
なので、こんな感じでDB指定する関数化もできる
def users( db ), do: "select * from #{ db }.users" |> query
def query( sql ) when sql != "" do
{ :ok, result } = Ecto.Adapters.SQL.query( Livery.Repo, sql, [] )
result
end
これとマルチプロセスやFlowをうまく組み合わせると、簡単な並行DBアクセスくらいは作れそう