以前のリビジョンの文書です
SQLiteOpenHelper#onUpgradeをコールさせ、onUpgrade内で任意のクエリを実行する。
onUpgradeをコールするには、コンストラクタに引き渡すDBバージョンを引き上げます。
仕様変更によりカラムが増えた例
テーブルfooにカラムageを追加し初期値として0を設定する
ALTER TABLE foo ADD COLUMN age INTEGER DEFAULT 0
public class DatabaseHelper extends SQLiteOpenHelper {
/
* DB ver
* DBスキーマを変更した場合、インクリメントする
*
* +++++ 変更履歴 +++++
* v1 : ….. 20150101 t.sou
* v2 :
* ….
*/
public static final int DB_VERSION = 1;
public static final String TABLE_NAME = “foo”;
/
* コンストラクタ
* アプリが保持しているDBバージョンと異なるバージョンが渡された場合、
* onUpgrade()またはonDowngradeが呼ばれる。
*/
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
final String sql = “CREATE TABLE ”+TABLE_NAME+“(”
+“id INTEGER PRIMARY KEY AUTOINCREMENT, ”
+“name TEXT”
+“);”;
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if(newVersion > oldVersion) {
switch(newVersion) {
case 2:
db.execSQL(“ALTER TABLE ”+TABLE_NAME+“ ADD COLUMN age INTEGER NOT NULL DEFAULT 0”);
}
}
}
}