【发布时间】:2021-09-27 02:34:46
【问题描述】:
我已经更新了我的数据库结构,并将包含在一个 DB(我们称之为 DB 1)中的数据移动到另一个 DB(我们称之为 DB 2)的表中。
如何在房间迁移中获取旧 DB (DB 1) 的实例,以将数据从 DB 1 移动到在 DB 2 中创建的新表?
谢谢大家。
【问题讨论】:
标签: android android-room database-migration
我已经更新了我的数据库结构,并将包含在一个 DB(我们称之为 DB 1)中的数据移动到另一个 DB(我们称之为 DB 2)的表中。
如何在房间迁移中获取旧 DB (DB 1) 的实例,以将数据从 DB 1 移动到在 DB 2 中创建的新表?
谢谢大家。
【问题讨论】:
标签: android android-room database-migration
假设两个数据库都在设备上,您有两个选择:-
您可以使用[openDatabase][1] 方法将其作为 SQLiteDatabase 打开,完成后显然将其关闭。
您也可以将旧的ATTACH 转移到新的,以确保您在移动数据后DETACH。请注意,在访问旧数据库(附加)时,使用 schema name 可能至关重要。
main_sdb.execSQL("ATTACH DATABASE '" + other_sdb.getPath() + "' AS other"); main_sdb 是一个 SupportSQliteDatabase 实例(传递给迁移),在这种情况下,附加的数据库的路径是从另一个这样的实例中检索的。架构名称是other
【讨论】: