java – 如何测试升级sqlite数据库,然后在Android上的Play Store上载我的应用程序的新版本

在更新应用程序版本后,我上传的应用程序中没有这样的表格找到“table_name”.测试后我出来,只有将旧版本的应用程序升级到新版本的应用程序后才会收到此问题

我已经实现了

我已经在onUpgrade()方法中完成了代码,并且在构造函数升级了db版本,但是我无法在设备中测试它.

步骤1)增加版本代码1到2

public databasehelper(Context context) {

        super(context,DATABASE_NAME,null,2);
        this.myContext = context;
        try {
            createDataBase();
            openDataBase();
        } catch (IOException e) {
            e.printstacktrace();
        }

    }

步骤2)将新表添加到onUpgrade()方法

@Override
    public void onUpgrade(sqliteDatabase db,int oldVersion,int newVersion) {

        Log.e("onUpgrade db",">>>>called");
        switch (oldVersion) {
        case 1:
            db.execsql(DATABASE_CREATE_notification_counter);
            Log.e("db version",">>>"+oldVersion);
            // we want both updates,so no break statement here...
        case 2:
            Log.e("db version",">>>"+oldVersion);
                  // I removed onCreate() method from here because new version will already have the new table
//          onCreate(db);
        }

    }

步骤3)新版本的数据库的onCreate()方法.

@Override
    public void onCreate(sqliteDatabase db) {
        db.execsql(DATABASE_CREATE_notification_counter); 
        Log.d("oncreate db",">>>>called");
    }

我有解决方升级数据库link1 link2 link3 link4

为什么我无法测试

我们已经在游戏商店上传了付费应用程序,所以我必须在模拟器或设备中使用两种不同的apk方式测试数据库升级方法旧版本和较新版本.
并且我已经在设备中首先使用旧版本进行测试,然后再使用新版本(db更改,db中添加新表),但是onUpgrade()方法此时不会被调用.

题:

1) How can I test db upgrade before updating new version on the
play store?

2) It will call only when you update the version from play store
only?

请帮我解决这个问题.

答案将不胜感激.提前致谢.

解决方法

数据库中存储的数据库版本.只需创建一个具有旧版本的db(db_old),而不是在您的DbHelper中.使用DbHelper连接到db_old,你的onUpgrade方法将被调用.

您可以使用现有的db作为db_old,只是减少它的版本.要更改版本,您可以使用任何sqlite数据库编辑器.

如果不想为DbHelper编写测试并想要模拟应用程序升级,可以使用adb install -r命令. Read more here.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...