Вот моя сущность
@Entity(tableName = "Task")
class TaskEntity {
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "ID")
var id: Long = 0
@ColumnInfo(name = "Title")
lateinit var title: String
}
Я добавил этот класс в свой список сущностей класса базы данных, пытаясь проверить, получаю ли я следующее исключение
java.lang.IllegalStateException: Pre-packaged database has an invalid schema: Task(com.idesign.iplacenotes.controller.database.room.entity.TaskEntity).
Expected:
TableInfo{name='Task', columns={Title=Column{name='Title', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}, ID=Column{name='ID', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=1, defaultValue='null'}}, foreignKeys=[], indices=[]}
Found:
TableInfo{name='Task', columns={}, foreignKeys=[], indices=[]}
Может быть, очень глупоошибка, но я не знаю, что я пропустил.
Вот код миграции,
private val MIGRATION_35_36 = object : Migration(35, 36) {
override fun migrate(database: SupportSQLiteDatabase) {
database.execSQL("CREATE TABLE `Task` (`ID` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `Title` TEXT NOT NULL)")
}
}
Здесь я инициализирую свою базу данных
fun getInstance(context: Context): AppDatabase {
if (instance == null) {
instance = Room.databaseBuilder(context, AppDatabase::class.java, DATABASE_NAME)
.fallbackToDestructiveMigration()
.addMigrations(MIGRATION_35_36)
.allowMainThreadQueries()
.build()
}
return instance as AppDatabase
}