-
-
Notifications
You must be signed in to change notification settings - Fork 520
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: expose database connection to ActiveModelBehaviour
's methods
#1145
feat: expose database connection to ActiveModelBehaviour
's methods
#1145
Conversation
@billy1624 maybe we could add this to v0.11? |
Sorry if I am too late to the discussion.
I imagine it might create many edge cases so we better add more tests |
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 @teenjuna, sorry for the delay and thanks for the contributions. Yes, we could include this in 0.11 release.
I'm going to merge this into a local branch where I'd make some changes to it.
Hey @billy1624, sorry I didn't finish the work. Got very busy... |
…thods (SeaQL#1328) * feat: expose database connection to `ActiveModelBehaviour`'s methods (SeaQL#1145) * Make ActiveModelTrait async * Add tests * refactoring Co-authored-by: teenjuna <53595243+teenjuna@users.noreply.github.com>
* Update 02-writing-migration.md * Update SeaORM/docs/03-migration/02-writing-migration.md * Support various UUID formats that are available in `uuid::fmt` module (SeaQL/sea-orm#1325) * Casting columns as a different data type on select, insert and update (SeaQL/sea-orm#1304) * Methods of `ActiveModelBehavior` receive db connection as a parameter (SeaQL/sea-orm#1145, SeaQL/sea-orm#1328) * Added `execute_unprepared` method to `DatabaseConnection` and `DatabaseTransaction` (SeaQL/sea-orm#1327) * Added `Select::into_tuple` to select rows as tuples (instead of defining a custom Model) (SeaQL/sea-orm#1311) * Generate `#[serde(skip)]` for hidden columns (SeaQL/sea-orm#1171, SeaQL/sea-orm#1320) * Generate entity with extra derives and attributes for model struct (SeaQL/sea-orm#1124, SeaQL/sea-orm#1321) * Generate entity with extra derives and attributes for model struct (SeaQL/sea-orm#1124, SeaQL/sea-orm#1321) * async_trait * Migrations are now performed inside a transaction for Postgres (SeaQL/sea-orm#1379) * `MockDatabase::append_exec_results()`, `MockDatabase::append_query_results()`, `MockDatabase::append_exec_errors()` and `MockDatabase::append_query_errors()` take any types implemented `IntoIterator` trait (SeaQL/sea-orm#1367) * Cleanup the use of `vec!` macros * Added `DatabaseConnection::close` (SeaQL/sea-orm#1236) * Added `ActiveValue::reset` to convert `Unchanged` into `Set` (SeaQL/sea-orm#1177) * Added `QueryTrait::apply_if` to optionally apply a filter (SeaQL/sea-orm#1415) * Added the `sea-orm-internal` feature flag to expose some SQLx types (SeaQL/sea-orm#1297, SeaQL/sea-orm#1434) * Add `QuerySelect::columns` method - select multiple columns (SeaQL/sea-orm#1264) * Edit * Update SeaORM/docs/02-install-and-config/02-connection.md Co-authored-by: Chris Tsang <chris.2y3@outlook.com> * Update SeaORM/docs/05-basic-crud/03-insert.md Co-authored-by: Chris Tsang <chris.2y3@outlook.com> * fmt * Edit --------- Co-authored-by: Chris Tsang <chris.2y3@outlook.com>
PR Info
This PR partly solves #962, making it possible to mimic database triggers by automatically executing database queries based on other database queries.
I only changed signatures in one existing test and didn't extend it: this change only passes database connection one level deeper, so we can rely on type system to ensure it's working correctly (correct me if I'm wrong).
Adds
Adds
&impl ConnectionTrait
to arguments ofActiveModelBehaviour
's methodsBreaking Changes
This is a breaking change since all implementations of
ActiveModelBehaviour
must be updated. The fix is straightforward though.