4 ms·
How does this work? I always assumed that you can have only one transaction open per session/connection (yes there are subtransaction but I don't see how these
by needusername 8y ago
How does this work? I always assumed that you can have only one transaction open per session/connection (yes there are subtransaction but I don't see how these could be used for multiplexing independent transaction over the same session.).
- sudhirj 8y agoCan't multiplex transactions, but if you're doing long running work inside transactions you have bigger problems. The Rails will checkout a connection for you, but it won't necessarily start a transaction if you don't ask it to. Think there's some magic involved there, but generally transactions don't start unless necessary or they're initiated by code.
- needusername 8y agoUh oh. I naturally assumed Rails runs every request in a transaction because that's obviously the default you want.
- sudhirj 8y agoNot really. Though this should be trivial to do - just start and commit in the base controller life cycle hooks - I would never want or recommend it as he default. Too many things can go wrong with out of hand work, sequencing, assuming that hooks will happen when you do call save methods etc.
- needusername 8y agoWhy would you not have that as a default? What things can go wrong? Not having it means you have to think about transactions in every method or you accept database inconsistency.