Fix for removing old indexes when resource is updated #1840
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.
IMPORTANT: All PRs must be linked to an issue (except for extremely trivial and straightforward changes).
Fixes #1825
Description
Issue: Updating resource via
FhirEngine.update
api doesn't delete previous indexes.Solution: In the database, for the
ResourceEntity
doInsert
instead ofUpdate
as it results in the Deletion of oldResourceEntity
(based on ConflictStrategy) that causes of itsIndexEntities
to get deleted as well based on theirForeignKey
constrain.Alternative(s) considered
Have you considered any alternatives? And if so, why have you chosen the approach in this PR?
The other approach is to have a
Unique Index
for each IndexEntity that will Delete it based on theinsert*Index
'sOnConflictStrategy
.Proposed solution is inline with how we handle updates for remote updates.
Type
Choose one: Bug fix
Screenshots (if applicable)
Checklist
./gradlew spotlessApply
and./gradlew spotlessCheck
to check my code follows the style guide of this project../gradlew check
and./gradlew connectedCheck
to test my changes locally.