如果我发布我的应用程序,并在2周内发布新的更新,我需要更改数据库,解决方案是什么?例如在Android中我有一个SQlite库覆盖检查数据库版本的Void.谢谢.
有很多方法可以做到这一点,但这是我在类似情况下使用过的系统.
将架构(和非事务性数据)保留为基线,并将版本号保留在数据库中.然后,每当更新程序时,请更改架构并将更改SQL保存在自己的文件中.这样你的文件编号顺序如(命名文件000001AddTableX.sql
,000002RemoveColumnX.sql
等等).然后编写一大块代码来检查保存所有变更集的文件夹.然后,如果文件名中的变更集编号大于存储在DB中的当前版本,请对数据库运行变更集.
这具有以下好处
如果您正在使用源代码管理,那么当您签入代码时,您的架构更改集将被保存并与代码中的(可能)相关更改相关联.
您的更改集代码将经过充分测试,因为它将是您在开发过程中使用的确切代码.
无论最终用户跳过多少次更新,他们都会在最终升级时以正确的顺序获得所有变更集.