【问题标题】:How can I manage my SQLite DB versions in Monotouch? [closed]如何在 Monotouch 中管理我的 SQLite DB 版本? [关闭]
【发布时间】:2013-05-08 17:04:05
【问题描述】:

如果我发布了我的应用程序,并且在 2 周内发布了新的更新,并且我需要更改数据库,那么解决方案是什么?例如,在 Android 中,我有一个 SQlite 库覆盖 Void 来检查数据库版本。谢谢。

【问题讨论】:

  • 为什么您的 Android 解决方案不适用于 iOS?
  • @Bosbon,我提到的解决方案不是 android 的 mono,是带有 Java 的普通 android,我猜 Sqlite 库是不同的,例如我在 monotouch 中使用的那个有一个 ORM 实现,Android中的那个没有。所以这就是我问的原因。
  • 你的问题真的很广泛 - 你能更具体地描述你面临的问题吗? MonoTouch 中的数据库版本控制没有任何特殊的通用解决方案。
  • 看看这个。这可能会给你一些想法。 stackoverflow.com/questions/13720206/…

标签: c# sqlite xamarin.ios


【解决方案1】:

有很多方法可以做到这一点,但这是我在类似情况下使用过的一个系统。

将架构(和非事务性数据)保留为基线,并将版本号保留在数据库中。然后,每当您更新程序时,更改架构并将更改的 SQL 保存在其自己的文件中。命名文件,以便您按顺序对文件进行编号,例如(000001AddTableX.sql000002RemoveColumnX.sql 等)。然后编写一段代码来检查保存所有变更集的文件夹。然后,如果文件名中的变更集编号大于存储在数据库中的当前版本,则针对数据库运行变更集。

这有以下好处

  • 如果您使用源代码管理,则在您签入代码时,您的架构变更集将被保存并与代码中的(可能)相关变更相关联。
  • 您的变更集代码将经过充分测试,因为它将是您在开发过程中使用的准确代码。
  • 无论最终用户跳过了多少更新,当他们最终升级时,他们都会以正确的顺序获得所有变更集。

【讨论】:

  • 这是一个非常聪明的方法。
猜你喜欢
  • 2014-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-14
  • 2018-11-24
  • 2011-06-01
  • 1970-01-01
  • 2012-08-22
相关资源
最近更新 更多