diff --git a/app/src/main/java/ua/acclorite/book_story/data/di/AppModule.kt b/app/src/main/java/ua/acclorite/book_story/data/di/AppModule.kt index 1a379a84..72e70493 100644 --- a/app/src/main/java/ua/acclorite/book_story/data/di/AppModule.kt +++ b/app/src/main/java/ua/acclorite/book_story/data/di/AppModule.kt @@ -49,9 +49,6 @@ object AppModule { @Provides @Singleton fun provideBookDatabase(app: Application): BookDatabase { - // Additional Migrations - DatabaseHelper.AUTO_MIGRATION_7_8.removeBooksDir(app) - return Room.databaseBuilder( app, BookDatabase::class.java, @@ -63,6 +60,10 @@ object AppModule { DatabaseHelper.MANUAL_MIGRATION_13_14, // remove nullability from ColorPresetEntity DatabaseHelper.MANUAL_MIGRATION_14_15, // remove author nullability from BookEntity DatabaseHelper.MANUAL_MIGRATION_15_16, // merge CategoryEntity and CategorySortEntity - ).allowMainThreadQueries().build() + ).allowMainThreadQueries().build().also { database -> + // Additional Migrations + DatabaseHelper.AUTO_MIGRATION_7_8.removeBooksDir(app) + database.categoryDao.ensureDefaultCategory() + } } } \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/data/local/room/BookDatabase.kt b/app/src/main/java/ua/acclorite/book_story/data/local/room/BookDatabase.kt index 86863b28..cbf97779 100644 --- a/app/src/main/java/ua/acclorite/book_story/data/local/room/BookDatabase.kt +++ b/app/src/main/java/ua/acclorite/book_story/data/local/room/BookDatabase.kt @@ -221,12 +221,6 @@ object DatabaseHelper { ON c.id = cs.categoryId """ ) - database.execSQL( - """ - INSERT INTO CategoryEntity_new (id, title, `order`, sortOrder, sortOrderDescending) - VALUES (-1, '', -1, 'LAST_READ', 1) - """ - ) database.execSQL("DROP TABLE CategoryEntity") database.execSQL("DROP TABLE CategorySortEntity") database.execSQL("ALTER TABLE CategoryEntity_new RENAME TO CategoryEntity") diff --git a/app/src/main/java/ua/acclorite/book_story/data/local/room/CategoryDao.kt b/app/src/main/java/ua/acclorite/book_story/data/local/room/CategoryDao.kt index f857aa06..91e620c5 100644 --- a/app/src/main/java/ua/acclorite/book_story/data/local/room/CategoryDao.kt +++ b/app/src/main/java/ua/acclorite/book_story/data/local/room/CategoryDao.kt @@ -16,6 +16,9 @@ import ua.acclorite.book_story.data.local.dto.CategoryEntity @Dao interface CategoryDao { + @Query("INSERT OR IGNORE INTO CategoryEntity (id, title, `order`, sortOrder, sortOrderDescending) VALUES (-1, '', -1, 'LAST_READ', 1)") + fun ensureDefaultCategory() + @Insert(onConflict = OnConflictStrategy.REPLACE) suspend fun insertCategory( category: CategoryEntity