Dành cho những bạn muốn biết thời điểm chính xác khi onUpgrade()
được gọi, nó là trong khi gọi đến getReadableDatabase()
hoặc getWriteableDatabase()
.
Đối với những người không rõ làm thế nào nó đảm bảo nó được kích hoạt, câu trả lời là:Nó được kích hoạt khi phiên bản cơ sở dữ liệu được cung cấp cho hàm tạo của SqLiteOpenHelper
đã cập nhật. Đây là một ví dụ
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
}
bây giờ để ... onUpgrade ()
@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);
}