Model - read/write connections |
A thought for Model - read/write connections:
Maybe the Model $DBGroup property could accept an array as: PHP Code: protected $DBGroup = [ And a new method like getConnection($type) to return the $db. The builder() method could have a second param $type. Then run the SELECTs, UPDATEs, etc according with the connection type.
That was definitely something that was in my mental roadmap, I just hadn't had an opportunity to get there yet. I think failover is currently not implemented either.
It would be nice to have the system automatically give the builder the right connection. I believe there's a isWriteType() method already though that may be too late in the process for it to work for this. I would happily accept a PR for this!
Yes. I found the isWriteType() in the \CodeIgniter\Database\Query class and also has one @todo in the \CodeIgniter\Database\BaseConnection::getConnection().
My thought is that the BaseConnection is not the place to decide if is a write or read connection because it uses a Database group. And the connection type should be based by group, because are required optimizations in the database according to the type. The failover is ok there. So I came to the conclusion that Model would be the best place to decide which group to use. If someone wants to read/write outside the Model, just use the necessary group. No? |
Welcome Guest, Not a member yet? Register Sign In |