Database, support migration from v1 to v2
SQL code taken (and verified and adapted) from https://gitlab.com/ggabr/AuroraStore/-/jobs/9073120823/artifacts/external_file/app/schemas/com.aurora.store.data.room.AuroraDatabase/2.json
This commit is contained in:
@@ -10,6 +10,10 @@ import androidx.sqlite.db.SupportSQLiteDatabase
|
||||
*/
|
||||
object MigrationHelper {
|
||||
|
||||
val MIGRATION_1_2 = object : Migration(1, 2) {
|
||||
override fun migrate(db: SupportSQLiteDatabase) = migrateFrom1To2(db)
|
||||
}
|
||||
|
||||
val MIGRATION_3_4 = object : Migration(3, 4) {
|
||||
override fun migrate(db: SupportSQLiteDatabase) = migrateFrom3To4(db)
|
||||
}
|
||||
@@ -20,6 +24,18 @@ object MigrationHelper {
|
||||
|
||||
private const val TAG = "MigrationHelper"
|
||||
|
||||
private fun migrateFrom1To2(database: SupportSQLiteDatabase) {
|
||||
database.beginTransaction()
|
||||
try {
|
||||
database.execSQL("CREATE TABLE `favourite` (`packageName` TEXT NOT NULL, `displayName` TEXT NOT NULL, `iconURL` TEXT NOT NULL, `added` INTEGER NOT NULL, `mode` TEXT NOT NULL, PRIMARY KEY(`packageName`))")
|
||||
database.setTransactionSuccessful()
|
||||
} catch (exception: Exception) {
|
||||
Log.e(TAG, "Failed while migrating from database version 1 to 2", exception)
|
||||
} finally {
|
||||
database.endTransaction()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add targetSdk column to download and update table for checking if silent install is possible.
|
||||
*/
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.aurora.store.data.room
|
||||
|
||||
import android.content.Context
|
||||
import androidx.room.Room
|
||||
import com.aurora.store.data.room.MigrationHelper.MIGRATION_1_2
|
||||
import com.aurora.store.data.room.MigrationHelper.MIGRATION_3_4
|
||||
import com.aurora.store.data.room.MigrationHelper.MIGRATION_4_5
|
||||
import com.aurora.store.data.room.download.DownloadConverter
|
||||
@@ -28,7 +29,7 @@ object RoomModule {
|
||||
downloadConverter: DownloadConverter
|
||||
): AuroraDatabase {
|
||||
return Room.databaseBuilder(context, AuroraDatabase::class.java, DATABASE)
|
||||
.addMigrations(MIGRATION_3_4, MIGRATION_4_5)
|
||||
.addMigrations(MIGRATION_1_2, MIGRATION_3_4, MIGRATION_4_5)
|
||||
.addTypeConverter(downloadConverter)
|
||||
.build()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user