onUpgrade не вызывается в первый раз в Android SQLiteOpenHelper

Я сталкиваюсь с очень странной проблемой. Я занимаюсь разработкой приложения для Android с базой данных sqlite. Я использую класс DBAdapter, который расширяет SQLiteOpenHelper. Я искал в интернете, но могуне могу найти решение.

Вот мой класс SQLiteOpenHelper

public class DBAdapter  extends SQLiteOpenHelper{

         private static DBAdapter mInstance = null;
        /**The Android's default system path of your application database. */
        private static String DB_PATH = "/data/data/com.mydbapp.android/databases/";

        private final static String DB_NAME = "mydb.sqlite";
        private static final int DATABASE_VERSION = 1;
        private static Context myContext;    


        public static DBAdapter getInstance(Context ctx) {

            if (mInstance == null) {
                mInstance = new DBAdapter(ctx);
            }
            return mInstance;
          }
            private DBAdapter(Context context) {     
                super(context,  DB_NAME, null, DATABASE_VERSION);
                DBAdapter.myContext = context;
                     DB_PATH = "/data/data/" +
                             context.getPackageName()+
                "/databases/"; 
            }   

           public void deleteDB()
           {
               myContext.deleteDatabase(DB_NAME);
           }

            public void createDataBase() throws IOException{     
                boolean dbExist = checkDataBase();  
                if(dbExist )
                {
                   this.getWritableDatabase();
                }
                if(!dbExist){
                    this.getReadableDatabase();
                    try {     
                        copyDataBase();
                    } catch (IOException e) {     
                        e.printStackTrace();
                        throw new Error("Error copying database");     
                    }
                }
            }

            @Override
            public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
            {
                if (newVersion > oldVersion)
                {
                            System.out.println("DB Upgrade logic")
                        }
            }

Теперь, когда я меняюсьprivate static final int DATABASE_VERSION = 2; затемonUpgrade() метод нене вызывается, но когда я изменяюсьprivate static final int DATABASE_VERSION = 3; тогда onUpgrade () работает. Итак, мой вопрос заключается в том, почемут это вызватьonUpgrade() метод, когда я изменяю версию БД с 1 на 2. Пожалуйста, помогите мне решить эту проблему.

Редактировать 1

Я заметил еще одно странное поведение. Когда я первоначально запускаю приложение с версией 1 БД, а затем снова устанавливаю приложение с верной версией БД (1), и теперь, если я изменяю версию БД 1 на 2, вызывается onUpgrade (). Я хочу сказать, что мне нужно установить приложение 2 раза с одной и той же версией БД, а затем, если я изменю версию БД, вызывается onUpgrade ().

Ответы на вопрос(3)

Ваш ответ на вопрос