获取以下异常:
预期:
TableInfo{name='chat_table',Columns={message=column{name='message',type='text',affinity='2',notnull=false,primarykeyposition=0},messageStatus=column{name='message status',type='text',affinity='2',notnull=false,primarykeyposition=0},id=column{name='id',type='integer',affinity='3',notnull=true,primarykeyposition=1}},ForeignKeys=[],indices=[]}
找到:
TableInfo{name='chat_table',Columns={messageStatus=Column{name='message status',type='text',affinity='2',notnull=false,PrimaryKeyPosition=0},id=Column{name='id',type='integer',affinity='3',notnull=false,PrimaryKeyPosition=1},message=Column{name='message',type='text',affinity='2',notnull=false,PrimaryKeyPosition=0},ForeignKeys=[],Indices=[]}
谁能说说这里的问题是什么吗?我只是将表列值复制到另一个表。然后删除第一个表,然后将新表重命名为旧名称。
1. database.execSQL("CREATE TABLE chat_table_new (id INTEGER,
messageStatus TEXT, message TEXT, PRIMARY KEY(id))")
2. database.execSQL("INSERT INTO chat_table_new SELECT * FROM
chat_table")
3. database.execSQL("DROP TABLE chat_table")
4. database.execSQL("ALTER TABLE chat_table_new RENAME TO chat_table")
试试看..
@Database(entities = {Student.class, BookIssue.class},version = 1)
public abstract class StudentDatabase extends RoomDatabase {
private static StudentDatabase studentDatabase;
public static StudentDatabase getStudentDatabase(Context context)
{
if (studentDatabase==null)
{
studentDatabase= Room.databaseBuilder(context.getApplicationContext(),StudentDatabase.class,"student-database").addMigrations(StudentDatabase.MIGRATION_1_2).build();
}
return studentDatabase;
}
public abstract StudentDao studentDao();
public abstract BookDao bookDao();
public static final Migration MIGRATION_1_2 =new Migration(1,2) {
@Override
public void migrate(SupportSQLiteDatabase database) {
database.execSQL("alter table Student "+"add column pf String");
}
};
}
更多了解请参阅此链接https://medium.com/androiddeveloperers/derministration-migrations-with-room-F01E04B07929
并且我发现了基于数据库版本4的可能场景的迁移varargs。 我的问题是,假设我使用的是db v1的Room,当我的应用程序到达db v10时,我将不得不编写多少迁移方法? 在sqlite中,我们在中获得已安装应用程序的当前db版本,我们只需通过开关大小写而不使用break语句,以便满足所有db升级。
我在存钱 进入我的房间数据库版本1。 现在我需要将
java.lang.IllegalStateException:迁移未正确处理data_table 应为:TableInfo{name=“data_table”,columns=url=column{name=“url”,type=“text”,notnull=false,primarykeyposition=0}..... 找到:TableInfo{name='data_table',colum
找到:TableInfo{name='news',Columns={alias=Column{name='alias',Type='text',affinity='2',notnull=false,PrimaryKeyPosition=0,DefaultValue='null'},Selected=Column{name='select',Type='integer',affinity='3',n
最近,我决定将我的应用程序从Java重写为静态编程语言。问题是在房间中迁移会返回一个奇怪的异常。 这是我的数据类的一部分 注意:我自己没有更改列,因此我的迁移如下所示: 有人能告诉我为什么我看到而不是吗? 提前感谢!