Database, support migration from v2 to v3
SQL code taken (and verified and adapted) from https://gitlab.com/ggabr/AuroraStore/-/jobs/9073627105/artifacts/external_file/app/schemas/com.aurora.store.data.room.AuroraDatabase/3.json
This commit is contained in:
@@ -14,6 +14,10 @@ object MigrationHelper {
|
|||||||
override fun migrate(db: SupportSQLiteDatabase) = migrateFrom1To2(db)
|
override fun migrate(db: SupportSQLiteDatabase) = migrateFrom1To2(db)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val MIGRATION_2_3 = object : Migration(2, 3) {
|
||||||
|
override fun migrate(db: SupportSQLiteDatabase) = migrateFrom2To3(db)
|
||||||
|
}
|
||||||
|
|
||||||
val MIGRATION_3_4 = object : Migration(3, 4) {
|
val MIGRATION_3_4 = object : Migration(3, 4) {
|
||||||
override fun migrate(db: SupportSQLiteDatabase) = migrateFrom3To4(db)
|
override fun migrate(db: SupportSQLiteDatabase) = migrateFrom3To4(db)
|
||||||
}
|
}
|
||||||
@@ -36,6 +40,18 @@ object MigrationHelper {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun migrateFrom2To3(database: SupportSQLiteDatabase) {
|
||||||
|
database.beginTransaction()
|
||||||
|
try {
|
||||||
|
database.execSQL("CREATE TABLE `update` (`packageName` TEXT NOT NULL, `versionCode` INTEGER NOT NULL, `versionName` TEXT NOT NULL, `displayName` TEXT NOT NULL, `iconURL` TEXT NOT NULL, `changelog` TEXT NOT NULL, `id` INTEGER NOT NULL, `developerName` TEXT NOT NULL, `size` INTEGER NOT NULL, `updatedOn` TEXT NOT NULL, `hasValidCert` INTEGER NOT NULL, `offerType` INTEGER NOT NULL, `fileList` TEXT NOT NULL, `sharedLibs` TEXT NOT NULL, PRIMARY KEY(`packageName`))")
|
||||||
|
database.setTransactionSuccessful()
|
||||||
|
} catch (exception: Exception) {
|
||||||
|
Log.e(TAG, "Failed while migrating from database version 2 to 3", exception)
|
||||||
|
} finally {
|
||||||
|
database.endTransaction()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add targetSdk column to download and update table for checking if silent install is possible.
|
* Add targetSdk column to download and update table for checking if silent install is possible.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.aurora.store.data.room
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import androidx.room.Room
|
import androidx.room.Room
|
||||||
import com.aurora.store.data.room.MigrationHelper.MIGRATION_1_2
|
import com.aurora.store.data.room.MigrationHelper.MIGRATION_1_2
|
||||||
|
import com.aurora.store.data.room.MigrationHelper.MIGRATION_2_3
|
||||||
import com.aurora.store.data.room.MigrationHelper.MIGRATION_3_4
|
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.MigrationHelper.MIGRATION_4_5
|
||||||
import com.aurora.store.data.room.download.DownloadConverter
|
import com.aurora.store.data.room.download.DownloadConverter
|
||||||
@@ -29,7 +30,7 @@ object RoomModule {
|
|||||||
downloadConverter: DownloadConverter
|
downloadConverter: DownloadConverter
|
||||||
): AuroraDatabase {
|
): AuroraDatabase {
|
||||||
return Room.databaseBuilder(context, AuroraDatabase::class.java, DATABASE)
|
return Room.databaseBuilder(context, AuroraDatabase::class.java, DATABASE)
|
||||||
.addMigrations(MIGRATION_1_2, MIGRATION_3_4, MIGRATION_4_5)
|
.addMigrations(MIGRATION_1_2, MIGRATION_2_3, MIGRATION_3_4, MIGRATION_4_5)
|
||||||
.addTypeConverter(downloadConverter)
|
.addTypeConverter(downloadConverter)
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user