摘要:Android - 版本初始與更新的SQLite Schema 處理
最近遇到一個狀況,
當我一開始開發時,會使用
SQLiteOpenHelper 處理 Database的建立與更新
會需要override onCreate
問題會發生在,程式一直修修改變,就會造成database 的 column 會有異動與變化,
最怕是上線之後,又有做版本更新及欄位更動,而造成更新會造成crash 會異常發生。
為此,搜尋網路解,發現了這篇文章。
http://www.michenux.net/android-database-sqlite-creation-upgrade-245.html
在不同版本之間的差異欄位的檔案,都儲存了下來。如下
Example of versions :
App version | App version code | DB version | Sql script file |
---|---|---|---|
1.00 (first version) | 100 | 100 | create.sql |
1.01 | 101 | 101 | upgrade-0101.sql |
1.10 | 110 | 110 | upgrade-0110.sql |
2.00 | 200 | 200 |
upgrade-0200.sql |
並從第一筆個schema變更,至最後一個schema變更做處理。
就不怕,版本更新之後造成如no such column 或 no such table的問題。