2017-05-27 75 views
1

当我将数据库从版本1升级到版本2并插入新数据时,删除存储在版本1数据库中的所有旧数据,并且只能看到新插入的数据数据库。升级数据库版本时数据不会与持久性库存留

任何想法如何在使用Room Library升级数据库时保持数据?

+1

你可能需要看看在DBHelper你的**'onUpgrade' **方法的数据,这个被称为你的时候增加数据库版本。许多人似乎编码删除表,然后调用**'onCreate' **(从教程复制)例如'db.execSQL(“DROP TABLE IF EXISTS”+ DATABASE_TABLE); onCreate(db);',我怀疑你可能有类似的代码。 – MikeT

+0

我没有使用传统的DBHelper。我正在使用Room Persistence Library检查此链接** https://developer.android.com/topic/libraries/architecture/room.html** –

+1

在这种情况下,您可能没有提供合适的迁移类为_Caution:如果您不提供必要的迁移,Room会重建数据库,这意味着您将丢失数据库中的所有数据._似乎反映了问题(引用您在** Database migration **部分中提供的链接)。 – MikeT

回答

1

我从同一链接找到解决方案。当没有提供迁移类时,Room Library会使用onUpgrade()上的数据删除整个数据库,然后再次创建数据库。

这是强制性的提供移民类,如果你想坚持下去的onUpgrade()