sqlite - What is the correct approach to upgrade Database in Android -


if want keep of old data , migrate new version of database , correct steps in onupgrade method?

  1. retain old data
  2. drop old tables
  3. create new tables , insert old data

is there simplified version or there better way? thanks!

upgrade database:

add new fields in table

do below steps in onupgrade

  1. copy old data in temp table

  2. create new table new fields

  3. again copy data temp new table

  4. drop temp table

also create new table in oncreate new users

sample code on upgrade

public void onupgrade(sqlitedatabase db, int oldversion, int newversion) {             if (oldversion < newversion) {                 if (oldversion == 3) {                     /**                      * code upgrade privious version letest version                      * */                     db.begintransaction();                     db.execsql("alter table " + tableconstants.table_mst.gettablename()                 + " rename " + tableconstants.table_mst.gettablename() + "_obsolete");         db.execsql(table_create_query_mst);         db.execsql("insert " + tableconstants.table_mst.gettablename() + "("                 + "f1, f2, f3) "                 + " select f1, f2, f3 " + tableconstants.table_mst.gettablename() + "_obsolete");         db.execsql("drop table if exists "                 + tableconstants.table_mst.gettablename() + "_obsolete");                     db.settransactionsuccessful();                     db.endtransaction();                     db.setversion(newversion);                  }                 }                 } 

add new table in database

do below steps

in onupgrade 1. create new table

in oncreate 1. create new table

note: manage database version, same next version, check older version work or not.


Comments

Popular posts from this blog

c++ - Difference between pre and post decrement in recursive function argument -

c# - Retrieve google contact -

javascript - How to insert selected radio button value into table cell -