【问题标题】:How to update table schema after an app upgrade on Android?在 Android 上升级应用程序后如何更新表架构?
【发布时间】:2016-08-24 22:18:14
【问题描述】:

我有一个未完成的应用程序,但我想现在解决它的未来更新。

假设我的应用程序已升级,因此在启动时检测到数据库架构已过时。所以对于每个表都必须根据版本号更新到新模式,同时保留所有数据。

我在某处读到,在 Android 上,SQLite 数据库有一些版本号和自动更新的东西,但我没有找到这个特定问题的示例。

如何在 Android 应用上使用 SQLite 数据库实现这一点?

每个存储在 Android SQLite 数据库中的表是否有特定的版本号?如果是这样,我该如何阅读它并用于我的上述目的?

【问题讨论】:

    标签: android sqlite upgrade database


    【解决方案1】:

    SQLiteOpenHelper 是你的朋友。

    您需要提供onCreateonUpgrade 方法。

    【讨论】:

    • 如何保存旧记录?记事本 onUpgrade 方法没有指定这一点。另外如何检测特定表是否只需要更新?
    • 您可以像使用任何 SQL 数据库一样使用 ALTER TABLE 语句或临时表来保留旧记录。如果您的整体架构发生变化,Android 只会协助告诉您 - 由您决定哪些表等需要更改。
    • (1) 我可以为每个表分别创建 SQLiteOpenHelper,然后我可以在这些类上清楚地保留 onCreate 和 onUpgrade,并且在实例化时会为我的每个类运行 onUpgrade 吗? (2) 或者我将在我的整个应用程序中只创建 1 个 SQLiteOpenHelper 类,并将所有创建表的所有更新都包含在同一位置? (3) 如何将我的 SQLite 数据库从模拟器传输到我的 PC? (4) 我需要加密数据库,还是安卓存储在安全的地方?
    • (1) 不起作用,但 (2) 应该。请针对 (3) 和 (4) 提出新问题,或者更好的是,搜索 SO 来寻找答案,因为我确信这些问题已经被涵盖了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 2014-03-27
    相关资源
    最近更新 更多