标签: android sqlite serialization
我想将对象存储到SQLlite数据库中。我正在寻找如何最好地做到这一点,以确保如果我将来需要更新/更改此对象,新旧对象布局的用户将受到最小的影响。换句话说,我希望确保对对象的更改对不使用旧数据库格式更新其软件的客户端的影响最小。我还希望确保从旧记录样式到新格式的轻松更新。
我想我可以在SQL行中添加一个元素来识别具有唯一名称的对象类型,并识别对象版本号。这样我就可以读取行并使用对象编号来控制反序列化器以使用正确的类版本。
我非常感谢有关该主题的最佳实践。
答案 0 :(得分:1)
开头的信息是here。
基本上,您需要创建SQLiteOpenHelper的子类。通过这种方式,您将获得有用的回调来创建/更新数据库模式甚至更改数据。
SQLiteOpenHelper
操作系统自动调用SQLiteOpenHelper.onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)回调并接受版本参数,以便您能够检测是否存在升级或降级,从而进行所需的数据库更改。这样您就可以安排某种数据库迁移(以Rails方式执行)。
SQLiteOpenHelper.onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)