相关疑难解决方法(0)

Room Database Migration无法正确处理ALTER TABLE迁移

Java.lang.IllegalStateException

迁移没有正确处理用户(therealandroid.github.com.roomcore.java.User).

预期:

TableInfo {name ='user',columns = {name = Column {name ='name',type ='TEXT',notNull = false,primaryKeyPosition = 0},age = Column {name ='age',type ='INTEGER ',notNull = true,primaryKeyPosition = 0},id = Column {name ='id',type ='INTEGER',notNull = true,primaryKeyPosition = 1}},foreignKeys = []}找到:

发现

TableInfo {name ='user',columns = {name = Column {name ='name',type ='TEXT',notNull = false,primaryKeyPosition = 0},id = Column {name ='id',type ='INTEGER ',notNull = true,primaryKeyPosition = 1},age = Column {name ='age',type ='INTEGER',notNull = false,primaryKeyPosition = 0}},foreignKeys = []}

我正在尝试执行一个简单的迁移,我有一个被调用的类User,它有两列ID (primary key) …

sqlite android android-room

26
推荐指数
5
解决办法
1万
查看次数

将布尔列添加到现有表中

我正在尝试将布尔列添加到现有表中

alter table chatuser add activerecord bool;
alter table chatuser add activerecord boolean;
Run Code Online (Sandbox Code Playgroud)

其中activerecord是我的布尔列

这些查询都不起作用.如何在现有表中添加布尔列?

mysql alter

22
推荐指数
3
解决办法
7万
查看次数

使用具有Room的现有VARCHAR列

我正在尝试将我现有的数据库用于Android Room.但是,我的一个表有一个VARCHAR列.

似乎Room仅支持TEXT而不支持VARCHAR.并且sqlite不允许修改列类型.

那么,有没有办法在房间里使用带有VARCHAR字段的existng表?或者我应该将整个表复制到一个新的表替换VARCHAR到TEXT?

android android-room

11
推荐指数
1
解决办法
910
查看次数

自动数据库迁移后使用重新查询“无法添加默认值为 NULL 的 NOT NULL 列”

AbstractFooEntity通过添加如下所示的整数字段来更新我的课程,并且我提高了数据库版本(数据库使用new DatabaseSource(context, Models.DEFAULT, DB_VERSION).

@Entity
abstract class AbstractFooEntity {
  // this was in DB schema v1
  String someField;

  // added in DB schema v2
  int newField = 0;
}
Run Code Online (Sandbox Code Playgroud)

当我部署此代码并在用户运行新版本的 Android 应用程序时执行(自动)数据库迁移时,我在运行时收到以下错误:"Cannot add a NOT NULL column with default value NULL".

在这种情况下,注释实体以便框架正确处理自动数据库迁移的正确方法是什么?

android

10
推荐指数
2
解决办法
3136
查看次数

标签 统计

android ×3

android-room ×2

alter ×1

mysql ×1

sqlite ×1