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

标签 android android-room

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

这似乎很奇怪,因为可以自动生成这些迁移(例如 django),而且 V1 的创建命令是自动生成的,但如果我稍后添加表,我必须手动输入命令。

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

最佳答案

现在支持房间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 {
  ...
}
doc

关于android - Android-Room 可以自动创建迁移吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57453096/

相关文章:

java - 如何在 Android 中获取 WiFi 噪音水平?

android - 将房间数据库中的唯一约束添加到多列

android - 与 Room 相比,SQLDelight 性能较慢

android - 添加房间依赖时无法合并dex错误

android - 使用服务在应用程序生命周期之外继续计时器

java - 如何使用SharedPreferences保存edittext中输入的文本并在另一个Activity中的TextView中显示

Android - 如何从内部存储中获取所有文件路径或从内部存储中删除所有文件

android - 当 Room 没有 LiveData 而不是从 REST API 获取时返回 LiveData 的存储库

java - 在 Java 中调用 Kotlin 函数

Android通用Java类最佳实践