Недавно я обновил библиотеку Room до версии 2.3.0-beta01 с версии 2.2.5. Вот добавленная мной миграция.

"CREATE TABLE 'bookmark' ('id' TEXT, 'content_id' TEXT NOT NULL, 'bookmark_position' INTEGER NOT NULL, 'chapter_index' INTEGER NOT NULL,'chapter_bookmark_position' INTEGER NOT NULL, 'bookmarked_at' INTEGER NOT NULL, 'bookmark_note' TEXT, 'content_type' INTEGER NOT NULL, 'title' TEXT NOT NULL, 'img_url' TEXT, 'sync_pending' INTEGER NOT NULL)"

Сущность

@Parcelize
@Entity(tableName = "bookmark",
primaryKeys = ["content_id", "bookmark_position", "chapter_index", "chapter_bookmark_position"])
data class Bookmark(
  @SerializedName("id")
  val id: String?,
  @SerializedName("content_id")
  @ColumnInfo(name = "content_id")
  var contentID: String,
  @SerializedName("bookmark_position")
  @ColumnInfo(name = "bookmark_position")
  val bookmarkPosition: Long,
  @SerializedName("chapter_index")
  @ColumnInfo(name = "chapter_index")
  val chapterIndex: Int,
  @SerializedName("chapter_bookmark_position")
  @ColumnInfo(name = "chapter_bookmark_position")
  val chapterBookmarkPosition: Long,
  ..

Здесь я использую составные ПК. При запуске приложения я получил эту ошибку. Единственное отличие - это primarayKeyPosition, которое равно 0 в том, что было найдено.

Ожидается

TableInfo{name='bookmark', columns={bookmark_note=Column{name='bookmark_note', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='null'}, content_type=Column{name='content_type', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=0, defaultValue='null'}, content_id=Column{name='content_id', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=1, defaultValue='null'}, bookmark_position=Column{name='bookmark_position', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=2, defaultValue='null'}, img_url=Column{name='img_url', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='null'}, chapter_index=Column{name='chapter_index', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=3, defaultValue='null'}, bookmarked_at=Column{name='bookmarked_at', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=0, defaultValue='null'}, sync_pending=Column{name='sync_pending', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=0, defaultValue='null'}, id=Column{name='id', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='null'}, title=Column{name='title', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}, chapter_bookmark_position=Column{name='chapter_bookmark_position', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=4, defaultValue='null'}}, foreignKeys=[], indices=[]}

Найденный

TableInfo{name='bookmark', columns={bookmark_note=Column{name='bookmark_note', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='null'}, content_type=Column{name='content_type', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=0, defaultValue='null'}, content_id=Column{name='content_id', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}, bookmark_position=Column{name='bookmark_position', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=0, defaultValue='null'}, img_url=Column{name='img_url', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='null'}, chapter_index=Column{name='chapter_index', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=0, defaultValue='null'}, bookmarked_at=Column{name='bookmarked_at', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=0, defaultValue='null'}, sync_pending=Column{name='sync_pending', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=0, defaultValue='null'}, id=Column{name='id', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='null'}, title=Column{name='title', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}, chapter_bookmark_position=Column{name='chapter_bookmark_position', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=0, defaultValue='null'}}, foreignKeys=[], indices=[]}

Я не могу понять, что случилось.

1
Vivek Patel 25 Фев 2021 в 14:02

1 ответ

Лучший ответ

Постановили

Я забыл добавить

PRIMARY KEY(content_id, bookmark_position, chapter_index, chapter_bookmark_position)

В моем необработанном SQL-запросе.

0
Vivek Patel 1 Мар 2021 в 14:41