Add update_columns methods to DB::Model for partial updates #335
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
I found that if it is only require to update a single column in DB, all other fields also send to DB. Example of Logs for changing only field
public_profile:Solution
Introduce new methods
update_columnsandupdate_columns!that allow updating specific database columns without running validations or callbacks. These methods provide a performance optimization for cases where only a subset of fields needs to be updated.Key features:
update_columns!raises an error for unsaved recordsUsage:
user.update_columns(username: "new_name") user.update_columns!(email: "new@example.com", last_login: Time.utc)
It generates logs: