简体   繁体   中英

Migration didn't properly handle:

I'm getting this error when upgrading my database:

java.lang.IllegalStateException: Migration didn't properly handle: seriesPosition(com.redline.xstreamredline.db.entities.SeriesPosition).

Expected:
       TableInfo{name='seriesPosition', columns={seasonId=Column{name='seasonId', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=0, defaultValue='null'}, uid=Column{name='uid', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=1, defaultValue='null'}, total_time=Column{name='total_time', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=0, defaultValue='null'}, position=Column{name='position', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=0, defaultValue='null'}, portalUid=Column{name='portalUid', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=0, defaultValue='null'}, episodeId=Column{name='episodeId', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=0, defaultValue='null'}, seriesId=Column{name='seriesId', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=0, defaultValue='null'}}, foreignKeys=[], indices=[Index{name='index_seriesPosition_portalUid_seriesId_seasonId_episodeId', unique=true, columns=[portalUid, seriesId, seasonId, episodeId]}]}
       ```
   ``` 
       Found:
   TableInfo{name='seriesPosition', columns={seasonId=Column{name='seasonId', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=3, defaultValue='null'}, uid=Column{name='uid', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=0, defaultValue='null'}, total_time=Column{name='total_time', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=0, defaultValue='null'}, position=Column{name='position', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=0, defaultValue='null'}, portalUid=Column{name='portalUid', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=1, defaultValue='null'}, episodeId=Column{name='episodeId', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=4, defaultValue='null'}, seriesId=Column{name='seriesId', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=2, defaultValue='null'}}, foreignKeys=[], indices=[]}    

I don't know how to specify indices.

database.execSQL("CREATE TABLE `seriesPosition` (`uid` INTEGER," +
                        " `portalUid` INTEGER, `seriesId` INTEGER, `seasonId` INTEGER," +
                        " `episodeId` INTEGER, `position` INTEGER, `total_time` INTEGER," +
                         " PRIMARY KEY(`portalUid`, `seriesId`, `seasonId`,`episodeId`))")

To define a composite Primary key you can use the primaryKeys parameter within the Entity annotation eg :-

@Entity(tableName = "seriesPosition", primaryKeys = ["portalUid","seriesId","episodeId"])

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM