【问题标题】:How to upgrade database on users device?如何升级用户设备上的数据库?
【发布时间】:2015-02-17 12:23:16
【问题描述】:

这是我第一次需要更改我的应用程序的数据库结构(已在 Google Play 上发布)。 这是我的数据库类:

public class Database extends SQLiteOpenHelper {
    private static final String DB_NAME = "db";
    private static final int DB_VERSION = 1;

    public Database(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String table = "CREATE TABLE users(";
        table += "_id TEXT PRIMARY KEY,";
        table += "name TEXT NOT NULL,";
        table += "surname TEXT NOT NULL,";
        table += "details TEXT);";

        String table2 = "CREATE TABLE favorite(";
        table2 += "id TEXT PRIMARY KEY);";

        String table3 = "CREATE TABLE documents(";
        table3 += "id TEXT PRIMARY KEY,";
        table3 += "text TEXT NOT NULL,";
        table3 += "username TEXT REFERENCES users(_id));";

        String table4 = "CREATE TABLE average(";
        table4 += "user TEXT PRIMARY KEY,";
        table4 += "document INTEGER NOT NULL,";
        table4 += "avg REAL NOT NULL);";

        db.execSQL(table);
        db.execSQL(table2);
        db.execSQL(table3);
        db.execSQL(table4);
    }

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

我添加了下表:

String table5 = "CREATE TABLE categories(";
table5 += "source TEXT PRIMARY KEY,";
table5 += "parent TEXT,";
table5 += "sub TEXT NOT NULL);";

然后添加:

db.execSQL(table5);

那么现在,我要在 onUpgrade 方法中添加什么来让用户在他们的设备上拥有更新的数据库? 抱歉,如果这可能是一个愚蠢的问题,但我不确定能否做到这一点,我想让用户在新版本的应用中获得正确的结构感到安全。

【问题讨论】:

    标签: android database add upgrade


    【解决方案1】:

    onUpgrade() 在数据库退出并且版本号低于构造函数中请求时调用。该方法会将表架构更新为请求的版本。

    您可以在此处找到更多信息:“When is SQLiteOpenHelper onCreate() / onUpgrade() run?

    【讨论】:

    • 我明白了,那我该怎么办?我只是在 onUpgrade 方法中写 table5 吗?
    猜你喜欢
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 2016-11-02
    • 2011-07-19
    • 1970-01-01
    • 2015-08-31
    • 2010-10-23
    相关资源
    最近更新 更多