-
-
Notifications
You must be signed in to change notification settings - Fork 521
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Support for lazy database connections #2268
Conversation
Add support for creating DB connection pools without establishing connections up front. This is already supported by SQLx via the [Pool::connect_lazy](https://docs.rs/sqlx/latest/sqlx/struct.Pool.html#method.connect_lazy) method. This PR adds a new `connect_lazy` option to `database::ConnectOptions`. If set to `true`, the SQLx `Pool` will be created using the `Pool::connect_lazy_with` method; otherwise, the `Pool::connect_with` method will be used (e.g., the existing behavior). This "lazy" behavior is implemented for each DB variant (Postgres/MySQL/SQLite). This was discussed previously [here](SeaQL#1645), but it appears support was never added to SEA ORM directly.
Hey @billy1624 , @tyt2y3 , can you take a look at this when you get a chance? Or assign to someone else to review? Thanks! |
Hey @billy1624 and @tyt2y3 sorry to ping you again. Can you take a look when you get a chance? Thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @spencewenski, sorry for the delay! This looks good to me :)
Great, thanks for the approval, @billy1624! And no worries! I understand you’re probably busy. |
Hey @tyt2y3, any chance you can take a look at this soon? Or let me know approximately when you’ll be able to take a look? |
Hey @billy1624 and @tyt2y3, just wondering when we can get this merged since it’s been approved for a while now. Thanks! |
Thank you |
Add support for creating DB connection pools without establishing connections up front. This is already supported by SQLx via the [Pool::connect_lazy](https://docs.rs/sqlx/latest/sqlx/struct.Pool.html#method.connect_lazy) method. This PR adds a new `connect_lazy` option to `database::ConnectOptions`. If set to `true`, the SQLx `Pool` will be created using the `Pool::connect_lazy_with` method; otherwise, the `Pool::connect_with` method will be used (e.g., the existing behavior). This "lazy" behavior is implemented for each DB variant (Postgres/MySQL/SQLite). This was discussed previously [here](#1645), but it appears support was never added to SEA ORM directly.
🎉 Released In 1.0.1 🎉Thank you everyone for the contribution! |
PR Info
New Features
Add support for creating DB connection pools without establishing connections up front. This is already supported by SQLx via the Pool::connect_lazy method.
This was discussed previously
here, but it appears support was never added to SEA ORM directly.
Bug Fixes
Breaking Changes
Changes
This PR adds a new
connect_lazy
option todatabase::ConnectOptions
. If set totrue
, the SQLxPool
will be created using thePool::connect_lazy_with
method; otherwise, thePool::connect_with
method will be used (e.g., the existing behavior). This "lazy" behavior is implemented for each DB variant (Postgres/MySQL/SQLite).