可以参考这篇博客
http://flyingcat2013.blog.51cto.com/7061638/1537074
下面是自己的项目中的实践,可以实现跨版本的数据库更新
<pre name="code" class="java">public class LikeDBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "likeit.db";
private static final int DATABASE_VERSION = 2;
private static LikeDBHelper sInstance = null;
public static void init(Context context) {
sInstance = new LikeDBHelper(context);
}
public static synchronized LikeDBHelper getInstance() {
return sInstance;
}
private LikeDBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
List<String> sqlList = new ArrayList<String>();
String sql_create_like_schema = "CREATE TABLE IF NOT EXISTS like_schema ( " +
"id INTEGER, " +
"sql TEXT, " +
"tbl TEXT, " +
"created REAL, " +
"PRIMARY KEY ( id ) );";
sqlList.add(sql_create_like_schema);
String sql_create_module_group = "CREATE TABLE IF NOT EXISTS module_group ( " +
"id TEXT, " +
"staff_id TEXT DEFAULT '', " +
"group_id TEXT DEFAULT '', " +
"display_method INTEGER DEFAULT 0, " +
"sequences INTEGER DEFAULT 0, " +
"PRIMARY KEY ( id ) );";
sqlList.add(sql_create_module_group);
String sql_create_module = "CREATE TABLE IF NOT EXISTS module ( " +
"id TEXT, " +
"staff_id TEXT DEFAULT '', " +
"module_id TEXT DEFAULT '', " +
"visible INTEGER DEFAULT 0, " +
"PRIMARY KEY ( id ) );";
sqlList.add(sql_create_module);
String sql_create_print_error_queue = "CREATE TABLE IF NOT EXISTS print_error_queue (" +
"id TEXT," +
"device_name TEXT DEFAULT ''," +
"app_name TEXT DEFAULT ''," +
"content TEXT DEFAULT ''," +
"template TEXT DEFAULT ''," +
"print_data TEXT DEFAULT ''," +
"deleted INTEGER DEFAULT 0," +
"PRIMARY KEY ( id ));";
sqlList.add(sql_create_print_error_queue);
DBTool.execSQL(db, sqlList);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
for (int i = oldVersion + 1; i <= newVersion; ++i) {
switch (i) {
case 2:
upgrade1_2(db);
break;
default:
break;
}
}
}
private void upgrade1_2(SQLiteDatabase db) {
db.execSQL("CREATE TABLE IF NOT EXISTS print_error_queue (id TEXT,device_name TEXT DEFAULT '',app_name TEXT DEFAULT '',content TEXT DEFAULT '',template TEXT DEFAULT '',print_data TEXT DEFAULT '',deleted INTEGER DEFAULT 0,PRIMARY KEY ( id ));");
}
}