On Tuesday, February 12, 2019 at 1:14:18 PM UTC-8, Alexander Popov wrote:
>
> Hello!
>
> I have problems, and I think, it can be resolved in Sequel:
>
> The query like this works correctly:
>
> Artist.eager_graph(:albums).server(:replica).all
>
> But with regular `eager` it fails. I think, because it makes eager 
> requests to default server instead of specified (`replica` in this example).
>

This is because a different dataset is used for the eager loads.  Here are 
a couple ways you could work around it:

  Artist.eager(albums: proc{|ds| ds.server(:replica)}).server(:replica).all

or using server_block extension:

  DB.with_server(:replica) do
    Artist.eager(:albums).all
  end
 
It is possible in a future version of Sequel we could automatically set a 
server on the eager dataset based on the server of the current dataset.  
That does have the potential to break backwards compatibility in some 
cases, though, so it may be best added as a non-default option.

Thanks,
Jeremy

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sequel-talk.
For more options, visit https://groups.google.com/d/optout.

Reply via email to