2010-11-16 89 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的方式做)。

相關問題