迁移自动生成主键

Migrating auto generate primary key

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

@PrimaryKey
private int id;

@PrimaryKey(autoGenerate=true)
private int id;

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

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

我建议您改变方法:添加唯一标识符 (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。