2015-07-26 3 views
0

i'am пытается перенести данные из старой базы данных в новую версию базы данных при обновлении приложения, но когда я запускаю новую версию приложения ушли все данные там нет данныхAndroid SQLite все данные удалены при обновлении базы данных

Вот мои onUpgrade Код:

@Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     try { 
      if (oldVersion < newVersion) { 
       Log.v("ONUPRGADE", "ITS HEREEEEEEEE"); 
       db.beginTransaction(); 
       db.execSQL("ALTER TABLE " + TABLE_NAME + " RENAME TO " + "temp_" + TABLE_NAME + ";"); 
       db.execSQL("ALTER TABLE atomicid" + " RENAME TO " + "temp_atomicid;"); 

       String Create_Table = "CREATE TABLE " + TABLE_NAME + " (" + PRIMARY_KEY + " INTEGER PRIMARY KEY AUTOINCREMENT , " 
         + ALARM_NAME + " TEXT NOT NULL , " + ALARM_TIME + " TEXT NOT NULL , " + DAY_OR_NIGHT + " TEXT NOT NULL , " 
         + Tone + " TEXT NOT NULL , " + SUNDAY + " TEXT , " + MONDEY + " TEXT , " + TUESDAY 
         + " TEXT , " + WEDNESDAY + " TEXT , " + THURSDAY + " TEXT , " 
         + FRIDAY + " TEXT , " + SATARDAY + " TEXT , " + repeatWeekly + " INTEGER ); "; 
       String AtomicIdTable = "CREATE TABLE atomicid(_id INTEGER PRIMARY KEY , alarmid INTEGER ,day TEXT);"; 
       db.execSQL(Create_Table); 
       db.execSQL(AtomicIdTable); 

       db.execSQL("INSERT INTO " + TABLE_NAME + " SELECT FROM temp_" + TABLE_NAME + ";"); 
       db.execSQL("INSERT INTO atomicid" + " SELECT FROM temp_atomicid" + ";"); 

       db.execSQL("DROP TABLE temp_" + TABLE_NAME + " IF EXISTS;"); 
       db.execSQL("DROP TABLE temp_atomicid" + " IF EXISTS;"); 

       db.setTransactionSuccessful(); 
       ; 
       onCreate(db); 

      } else { 
       Log.v("ONUPRGADE", "ELSEEEEEEEEEEEE"); 

       db.execSQL("DROP TABLE " + TABLE_NAME + " IF EXISTS;"); 
       db.execSQL("DROP TABLE atomicid" + " IF EXISTS;"); 

       db.endTransaction(); 
       onCreate(db); 
      } 
     } finally { 
      db.endTransaction(); 
     } 

    } 

UPDATE проблема заключалась в том, что я имел измененную версию приложения на build.gradle с версией базы данных, поэтому каждый раз, когда я запустить приложение его Сотрите applciation с его файлами лол

+0

вы уверены, что эти 2 строки вставки в выберите из без выбора, какие столбцы, которые работают? – gmetax

ответ

0

изменить эти строки

db.execSQL("INSERT INTO " + TABLE_NAME + " SELECT FROM temp_" + TABLE_NAME + ";"); 
    db.execSQL("INSERT INTO atomicid" + " SELECT FROM temp_atomicid" + ";"); 

в

db.execSQL("INSERT INTO " + TABLE_NAME + " SELECT * FROM temp_" + TABLE_NAME + ";"); 
    db.execSQL("INSERT INTO atomicid" + " SELECT * FROM temp_atomicid" + ";"); 
+0

такой же проблема: / – MrDroid

Смежные вопросы