Merge branch 'gabr/dbMigr1-2-3' into 'master'

Database, support migration from v1 and v2

Closes #1279

See merge request AuroraOSS/AuroraStore!440
This commit is contained in:
Aayush Gupta
2025-02-14 05:38:26 +00:00
2 changed files with 35 additions and 1 deletions

View File

@@ -10,6 +10,14 @@ import androidx.sqlite.db.SupportSQLiteDatabase
*/
object MigrationHelper {
val MIGRATION_1_2 = object : Migration(1, 2) {
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) {
override fun migrate(db: SupportSQLiteDatabase) = migrateFrom3To4(db)
}
@@ -20,6 +28,30 @@ 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()
}
}
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.
*/

View File

@@ -2,6 +2,8 @@ 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_2_3
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 +30,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_2_3, MIGRATION_3_4, MIGRATION_4_5)
.addTypeConverter(downloadConverter)
.build()
}