1

我想在现有表中添加一些键,例如“URL”。

在 iOS 中,我可以创建新版本的数据模型并执行轻量级迁移。

但是,SQLiteOpenHelper 中的默认方式似乎破坏了旧数据库并创建了一个新数据库。

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // Drop older table if existed
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_1 + ", "
            + TABLE_2 + ", " + TABLE_3 + ", "
            + TABLE_4);
    // Create tables again
    onCreate(db);
}

如何保留旧数据库并在 Android 中添加一些新密钥?

4

1 回答 1

1

您可以编写自己的升级 sql 查询来升级您的数据库。

在删除所有表后调用 onCreate 只是一种升级表的简单方法,而无需关心 FK、空字段或数据库版本。

使用 oldVersion 和 newVersion 对数据库进行正确的更改(更改表)。

关于升级文档

于 2013-09-24T15:18:13.437 回答