2010-11-16 57 views
2

我想将对象存储到SQLlite数据库中。我正在寻找如何做到最好,以确保如果我将来需要更新/更改此对象,新老对象布局的用户将受到的影响最小。换句话说,我想确保对对象进行更改对于不以旧数据库格式更新其软件的客户端具有最小影响。我也想确保从旧记录样式到新格式的简单更新。将对象存储到SQLite数据库最佳做法

我在想,我可以在SQL行中添加一个元素来标识具有唯一名称的对象类型,并标识对象的版本号。这样我可以读取该行并使用对象编号来控制解串器使用正确版本的类。

我非常感谢在这个问题上的最佳做法。

+1

如果是android应用程序,当您更新软件时,您有机会更新数据库。通常情况下,您不会遇到新软件+旧数据库或新数据库+旧软件场景的问题。 – xandy 2010-11-16 04:05:36

+0

有趣我不知道有这样的事情。你亲自使用过它吗?如果有的话,你的经历是什么? – 2010-11-16 04:51:27

回答

1

开始的信息是here

基本上你需要创建SQLiteOpenHelper的子类。通过这种方式,您将获得有用的回调来创建/更新数据库模式,甚至更改数据。

SQLiteOpenHelper.onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)回调由OS自动调用并接受版本参数,因此您将能够检测是否存在升级或降级,从而执行所需的数据库更改。这样你就可以安排某种数据库迁移(以Rails的方式做)。

相关问题