Ami*_*ari 3 architecture lifecycle android android-room
我一直在研究 Android 中新架构组件中引入的 Room DB,并考虑将我当前的 DB 迁移到 Room DB。
但是我当前的 db 实现允许我向表中添加列,但根据 Room,POJO 类中的字段表示表的列。
可以使用原始查询在 Room DB 中添加列,如果是,我将如何实现它。
我知道这是一篇旧帖子,但这可能会帮助需要帮助的人。
您想在升级数据库时添加所述列,还是想在第一次创建表时添加?
如果您想在升级数据库时执行此操作,则可以查看
Room.databaseBuilder(getApplicationContext(), MyDb.class, "database-name")
.addMigrations(MIGRATION_1_2, MIGRATION_2_3).build();
static final Migration MIGRATION_1_2 = new Migration(1, 2) {
@Override
public void migrate(SupportSQLiteDatabase database) {
database.execSQL("CREATE TABLE `Fruit` (`id` INTEGER, `name` TEXT, PRIMARY KEY(`id`))");
}
};
static final Migration MIGRATION_2_3 = new Migration(2, 3) {
@Override
public void migrate(SupportSQLiteDatabase database) {
database.execSQL("ALTER TABLE Book ADD COLUMN pub_year INTEGER");
}
};
Run Code Online (Sandbox Code Playgroud)
如果您想即时添加列,则必须获取数据库的实例,然后可以尝试调用以下内容:
getDatabaseInstance().query()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7137 次 |
| 最近记录: |