आप में से उन लोगों के लिए जो सटीक क्षण जानना चाहते हैं जब onUpgrade()
कॉल किया जाता है, यह getReadableDatabase()
. पर कॉल के दौरान होता है या getWriteableDatabase()
।
उन लोगों के लिए जो स्पष्ट नहीं हैं कि यह कैसे सुनिश्चित करता है कि यह ट्रिगर हो जाता है, इसका उत्तर है:यह तब चालू होता है जब डेटाबेस संस्करण SqLiteOpenHelper
के निर्माता को प्रदान किया जाता है। यह अद्यतित है। यहाँ एक उदाहरण है
public class dbSchemaHelper extends SQLiteOpenHelper {
private String sql;
private final String D_TAG = "FundExpense";
//update this to get onUpgrade() method of sqliteopenhelper class called
static final int DB_VERSION = 2;
static final String DB_NAME = "fundExpenseManager";
public dbSchemaHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
// TODO Auto-generated constructor stub
}
अब करने के लिए...ऑनग्रेड ()
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
sql = "ALTER TABLE " + fundExpenseSchema.Expense.TABLE_NAME + " ADD COLUMN " + fundExpenseSchema.Expense.FUNDID + " INTEGER";
arg0.execSQL(sql);
}