Android-Room 可以自动创建迁移吗?

Foo*_*Bar 6 android android-room

在 Android 上使用 Room for sqlite 库时,我注意到虽然数据库第一个版本的表是自动创建的,但我只看到了有关如何通过手动编写迁移的 sql 命令来迁移到新版本的教程 -类。

这看起来真的很奇怪,因为可以自动生成这些迁移(例如像 django 一样),并且令人惊讶的是 V1 的创建命令是自动生成的,但如果我稍后添加表,我必须手动键入命令。

那么我只是错过了它还是我真的必须编写迁移?

小智 6

现在 room 已经支持了2.4.0

目前仅提供测试版2.4.0-beta01。我在我的项目中测试过它工作正常。

// Database class before the version update.
@Database(
  version = 1,
  entities = {User.class}
)
public abstract class AppDatabase extends RoomDatabase {
  ...
}

// Database class after the version update.
@Database(
  version = 2,
  entities = {User.class},
  autoMigrations = {
    @AutoMigration (from = 1, to = 2)
  }
)
public abstract class AppDatabase extends RoomDatabase {
  ...
}
Run Code Online (Sandbox Code Playgroud)

参见文档


Com*_*are 0

目前,使用 Room,您确实必须编写迁移。