如何从Android中的requery.io db中删除列

时间:2017-07-28 07:53:28

标签: android sqlite orm

我有一个表定义为:

PATH

我想要删除@Table(name = "Rooms") @Entity interface IRooms : Persistable { @get:Column(nullable = false) @get:Key var roomJid: String @get:Column(name = "gameId", nullable = false) @get:ManyToOne var game: IGames @get:Column(name = "creatorJid", nullable = false) @get:ManyToOne var creator: IProfiles @get:Column(nullable = false) @get:OneToMany(cascade = arrayOf(CascadeAction.DELETE, CascadeAction.SAVE)) val players: MutableList<IPlayers> @get:JunctionTable @get:ManyToMany(cascade = arrayOf(CascadeAction.DELETE, CascadeAction.SAVE)) val invitedContacts: MutableList<IInvitedContacts> @get:Column(nullable = false) var lastModified: Long @get:Column(nullable = false) var isLocked: Boolean var nextPlayerJid: String? @get:Column(nullable = false) var hasGameEnded: Boolean @get:Column(nullable = false) var isSoloRoom: Boolean } 列并添加另一列isSoloRoom定义为:

matchType

现在,我想编写迁移脚本以删除@get:Convert(MatchType.RequeryConverter::class) var matchType: MatchType? 列,如果isSoloRoom值为isSoloRoom,则将True设置为 SOLO else { {1}}。

我尝试了什么:

  1. 我从上面的架构和我编写的matchType方法中删除了null列:
  2. isSoloRoom

    onUpgrade列已成功添加,但效果不佳,但db?.execSQL("UPDATE Rooms SET ('matchType') = ('SOLO') WHERE soloRoom = 1")未删除。

    我应该怎么做才能删除matchType列并添加isSoloRoom列。我是否应该从Schema中删除它,也可以通过sqlite从isSoloRoom脚本中删除它(编写整个create table会非常繁忙)或者requery是否提供了一些替代方法?

0 个答案:

没有答案