Я пытаюсь перейти с Sqlite на Room, но получаю ошибку миграции, я думаю, это связано с тем, что я использовал VARCHAR () (я следовал руководству, определенно хотел бы, чтобы я просто использовал TEXT, но не могу исправить это сейчас).
Вот моя сущность:
@Entity(tableName = "conversation")
class Conversation(@PrimaryKey
@ColumnInfo(name = "key") val key: Int,
@ColumnInfo(name = "message_id") val messageId: String?,
@ColumnInfo(name = "thread_id") val threadId: String?,
@ColumnInfo(name = "address") val address: String?,
@ColumnInfo(name = "group_address") val groupAddress: String?,
@ColumnInfo(name = "name") val name: String?,
@ColumnInfo(name = "group_name") val groupName: String?,
@ColumnInfo(name = "body") val body: String?)
Вот ошибка, которую я получаю:
Expected:
TableInfo{name='conversation', columns={date=Column{name='date', type='INTEGER', notNull=false, primaryKeyPosition=0}, address=Column{name='address', type='TEXT', notNull=false, primaryKeyPosition=0}.....
Found:
TableInfo{name='conversation', columns={date=Column{name='date', type='INTEGER', notNull=false, primaryKeyPosition=0}, address=Column{name='address', type='VARCHAR(14)', notNull=false, primaryKeyPosition=0}....
И это всего лишь куча всего, и я не совсем уверен, как конвертировать VARCHAR в текст или что-то в этом роде
Редактировать: метод миграции
override fun migrate(database: SupportSQLiteDatabase) {
database.execSQL(TexpertDatabase.CONVO_CREATE) //Creates table named conversation_temp with preferred schema
database.execSQL("INSERT INTO conversation_temp SELECT ${TexpertDatabase.allCols} FROM conversation")
database.execSQL("DROP TABLE conversation")
database.execSQL("ALTER TABLE conversation_temp RENAME TO conversation")
}