summaryrefslogtreecommitdiff
path: root/app/src/main/java/org/terst/feedreader/data/AppDatabase.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/org/terst/feedreader/data/AppDatabase.kt')
-rw-r--r--app/src/main/java/org/terst/feedreader/data/AppDatabase.kt14
1 files changed, 12 insertions, 2 deletions
diff --git a/app/src/main/java/org/terst/feedreader/data/AppDatabase.kt b/app/src/main/java/org/terst/feedreader/data/AppDatabase.kt
index 7f33439..2fd5816 100644
--- a/app/src/main/java/org/terst/feedreader/data/AppDatabase.kt
+++ b/app/src/main/java/org/terst/feedreader/data/AppDatabase.kt
@@ -12,7 +12,7 @@ private const val TAG = "FeedMigration"
@Database(
entities = [FeedEntity::class, ArticleEntity::class, FilterRuleEntity::class],
- version = 9,
+ version = 10,
exportSchema = false
)
abstract class AppDatabase : RoomDatabase() {
@@ -258,6 +258,16 @@ abstract class AppDatabase : RoomDatabase() {
}
}
+ // v10: added ArticleEntity.readAt (epoch millis, null while unread). Plain nullable
+ // ADD COLUMN is safe here the way v2/v3's were -- no column is being removed or
+ // renamed, so there's nothing for Room's exact-match post-migration validation to
+ // trip on (see v4's comment above for what DOES require a full rebuild).
+ private val MIGRATION_9_10 = object : Migration(9, 10) {
+ override fun migrate(db: SupportSQLiteDatabase) {
+ db.execSQL("ALTER TABLE articles ADD COLUMN readAt INTEGER")
+ }
+ }
+
fun get(context: Context): AppDatabase = instance ?: synchronized(this) {
instance ?: Room.databaseBuilder(
context.applicationContext,
@@ -265,7 +275,7 @@ abstract class AppDatabase : RoomDatabase() {
"feedreader.db"
).addMigrations(
MIGRATION_1_2, MIGRATION_2_3, MIGRATION_3_4, MIGRATION_4_5,
- MIGRATION_5_6, MIGRATION_6_7, MIGRATION_7_8, MIGRATION_8_9
+ MIGRATION_5_6, MIGRATION_6_7, MIGRATION_7_8, MIGRATION_8_9, MIGRATION_9_10
).build().also { instance = it }
}
}