[英]Android sqlite database version change
我有一个带有数据库的应用程序,在新的应用程序版本中,必须更改数据库架构。
新旧版本应在代码的何处添加? 新版本将如何与旧版本比较数据库并进行更改。
请帮我解决一下这个。
Override onUpgrade method in SQLiteOpemHelper class.
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
Log.d("TAG", "ugrade called");
if (newVersion > oldVersion) {
db.execSQL("DROP TABLE IF EXISTS " + SchoolCode.CODE_LIST_TABLE);
// db.execSQL("DROP TABLE IF EXISTS " + ParentTable.PARENT_TABLE);
db.execSQL("DROP TABLE IF EXISTS "
+ PreferenceTable.PREFERENCE_LIST_TABLE);
db.execSQL("DROP TABLE IF EXISTS " + ParentTable.PARENT_TABLE);
onCreate(db);
}
}
//first DATABASE_VERSION add 1,bigger than your old version
private static final int DATABASE_VERSION = 2;
public ExpenseDBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onUpgrade(SQLiteDatabase paramSQLiteDatabase, int oldVersion,
int newVersion) {
// TODO Auto-generated method stub
if (oldVersion == 1) {
// old version database ,you can upgrade data here
}
if (newVersion == 2) {
// new version database ,you can add data or table here
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.