thanks!
在 2017年1月4日星期三 UTC+8上午1:19:00,Jeremy Evans写道:
>
> On Tuesday, January 3, 2017 at 8:46:26 AM UTC-8, melody wrote:
>>
>> I set up my postgresql database, master for write, the other for read
>> using the following:
>>
>> DB=Sequel.postgres('postgres://master_server/database',
>> :servers=>{:read_only=>{:host=>'slave_server'}})
>>
>> now when i execute sqls within a transaction, it didn't behave correct.
>>
>> DB.transaction do
>> DB["update XX set age = 22 where id = 3"].update
>> DB["select age from XX where id = 3"].first
>> end
>>
>> the second sql didn't return age: 22, So i guess the update sql and
>> select sql been executed on different databases, maybe update on master and
>> query on slave, is it possible?
>>
>
> This is not only possible, this is the expected behavior. SELECT queries
> go to read_only shard, other queries to the default shard. If you want to
> force the select query to the default shard:
>
> DB.transaction do
> DB["update XX set age = 22 where id = 3"].update
> DB["select age from XX where id = 3"].server(:default).first
> end
>
> Alternatively, you may want to look at the server_block extension, which
> allows setting a default shard for a given block.
>
> 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.