我有一个使用sqlite DB的Windows应用程序。我使用设置和部署项目为此应用程序创建了一个设置。我可能每隔一个月就需要在应用程序中进行更改,并且用户必须更新它。
我的应用程序在第一次运行时会创建sqlite DB文件。如果DB文件在那里,那么它不会创建它。现在,当我对应用程序进行更新时,我还必须对数据库模式进行一些更改。在这种情况下,用户也可能在sqlite DB中有一些数据。我不应该触摸数据,而是更新数据库架构。这也将在几个月内发生一次,因为我将为应用程序添加新功能。
我们如何正常处理应用程序的此类更新。我每次向应用程序添加新功能时都会进行新设置,这将卸载现有版本并安装新版本。但我对数据库部分感到困惑。我们应该如何在数据库模式中处理这种增量更新?
有什么建议吗?
答案 0 :(得分:1)
Autopatchnet - 此项目是基于原始TactiKnowledge dotnet项目的AutoPatch的.Net端口。
ecm7migrator - 此项目来自Migrator.NET。
Migrator.NET - .NET的数据库迁移。基于Rails ActiveRecord Migrations的想法。
答案 1 :(得分:1)
您的数据库中应该有一个数据库版本号,并让您的应用程序根据版本号更新数据库。因此,您的sql更新脚本将包含在您的应用程序中,并在启动时进行处理。
安装程序将更新代码和文件,您的应用程序将更新数据库。
答案 2 :(得分:0)
虽然以上答案将在一定程度上解决我的问题,但我总是提出了不同的方法。
我使用过DrDro提供的数据库更新方法。对于应用程序更新,我认为我有更好的方法。我发现有一篇文章讨论了当源上有新的更新(在我的案例服务器中)时应用程序本身自动更新应用程序。
这是article(此链接已更新,因为之前的链接无效)。它非常清楚地解释了这种方法,这对我的要求是多头的。