Android - 版本初始與更新的SQLite Schema 處理

摘要: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的問題。