迁移自动生成主键

时间:2018-11-24 09:49:07

标签: android android-room

如何迁移以前未设置为自动生成的主键字段? 来自

@PrimaryKey
private int id;

收件人

@PrimaryKey(autoGenerate=true)
private int id;

由于Sqlite不支持更改列,所以我唯一的猜测是按原样迁移整个表并重置约束。

在开发过程中,我是否甚至必须迁移数据库,还是可以重建它,因为我的数据库会快速变化,所以我不必每次都迁移?

1 个答案:

答案 0 :(得分:0)

我建议您更改方法:添加唯一标识符(UID)作为识别记录的替代方法。

您可以在POJO上定义带有注释Entity的UID。

@Entity(indices={@Index(value="uid", unique=true)})
publi class Pojo {
  ..
  public String uid;
  ..
}

在数据库中插入记录时,可以使用以下命令定义uid字段:

String uuid = UUID.randomUUID().toString();

您可以使用UUID字段以绝对方式标识您的记录。当您将一个版本迁移到另一个版本时,您无需使用旧的ID,就可以始终使用UID。