Better handling of issues caused by time traveling (RiskResults) (DEV) #2019
* Change primary key for risk result database to a monotonic ID.
This prevents time travel from breaking "get latest" as we will get the latest by monotonic ID, instead of "calculatedAt".
* We don't need `fallbackToDestructiveMigrationFrom(3)` until we actually upgrade the schema to 3.
* Fix database test (missing monotonicId)
* Catch exceptions during migrations and recreate the table.
* Add check for result size after recreating+insertion.
Co-authored-by:
Ralf Gehrer <ralfgehrer@users.noreply.github.com>
Showing
- Corona-Warn-App/build.gradle 2 additions, 0 deletionsCorona-Warn-App/build.gradle
- Corona-Warn-App/schemas/de.rki.coronawarnapp.risk.storage.internal.RiskResultDatabase/2.json 209 additions, 0 deletions...nawarnapp.risk.storage.internal.RiskResultDatabase/2.json
- Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/risk/storage/RiskResultDatabaseMigrationTest.kt 224 additions, 0 deletions...nawarnapp/risk/storage/RiskResultDatabaseMigrationTest.kt
- Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/risk/storage/RiskResultDatabaseTest.kt 3 additions, 0 deletions.../rki/coronawarnapp/risk/storage/RiskResultDatabaseTest.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/risk/storage/internal/RiskResultDatabase.kt 9 additions, 8 deletions...coronawarnapp/risk/storage/internal/RiskResultDatabase.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/risk/storage/internal/migrations/RiskResultDatabaseMigration1To2.kt 117 additions, 0 deletions...ge/internal/migrations/RiskResultDatabaseMigration1To2.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/risk/storage/internal/riskresults/PersistedRiskLevelResultDao.kt 3 additions, 2 deletions...orage/internal/riskresults/PersistedRiskLevelResultDao.kt
- Corona-Warn-App/src/testShared/java/testhelpers/IsAUnitTest.kt 0 additions, 0 deletions...a-Warn-App/src/testShared/java/testhelpers/IsAUnitTest.kt
Loading
Please register or sign in to comment