Предварительно упакованная база данных имеет неверную схему - PullRequest
0 голосов
/ 24 сентября 2019

Вот моя сущность

@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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...