【问题标题】:Upgrading database on app update在应用程序更新时升级数据库
【发布时间】:2013-03-30 15:30:19
【问题描述】:

我正在开发一个 Windows 应用商店应用,它使用 SQLite for Windows Runtime Extensionsqlite-net 库 将数据存储在本地 SQLite 数据库中。此数据库在Windows.Storage.ApplicationData.Current.LocalFolder.Path 路径中创建。 一切正常,我想我提交时不会有问题。

问题 1

但是当我更改应用程序,再次提交并且用户更新它时会发生什么? 数据库文件会被删除吗?用户会丢失他的数据吗?

问题 2

我能否使用旧数据库并在应用版本之间进行升级?

我知道如何在开发 Android 应用程序时执行此操作,但这个 Windows Store Update 流程对我来说是新的,我害怕犯一些错误,导致我无法恢复用户数据。如果有人已经通过它,请告诉我它是如何工作的。

提前致谢

【问题讨论】:

    标签: c# sqlite windows-8 windows-store-apps sqlite-net


    【解决方案1】:

    应用程序数据在更新时保持不变;只有当用户卸载应用程序时,它才会被删除。来自Accessing app data with the Windows Runtime

    系统管理应用程序的数据存储,确保它们与其他应用程序和其他用户保持隔离。当用户为您的应用安装更新时,系统还会保留这些数据存储的内容,并在卸载您的应用时完全干净地删除这些数据存储的内容。

    鉴于此,您当然可以访问其本地数据库的当前(旧)版本,因此您可以将任何迁移/升级功能构建为应用程序的一部分。

    【讨论】:

    • 谢谢。只有在第一次运行应用程序并考虑到正在更新的版本时,才有一种合适的迁移方式?例如,如果用户安装了 version1 并且他仅在 version3 当前可用时更新应用程序,我可能需要与 version2->version3 不同的迁移
    • 好点是的,我会说是这样。您也可以为此执行后台任务,但这并不能让您不必考虑跳过的更新。
    • 好吧,我问的是在更新我可以使用而不是自己实现的应用程序时是否有一些机制/事件/回调被执行
    • 啊,鉴于application data versioning使用的指导,我不这么认为
    猜你喜欢
    • 2016-02-12
    • 1970-01-01
    • 2013-04-23
    • 2010-10-28
    • 2011-10-28
    • 1970-01-01
    • 2016-03-14
    • 2014-10-19
    • 1970-01-01
    相关资源
    最近更新 更多