在客户端维护数据库

问题描述 投票:-1回答:1

客户端:我有一个桌面应用程序。该应用程序还有一个Sqlite文件。我在客户端计算机上使用WIX Toolset安装它。当我在应用程序中输入一些数据时,它会保存在数据库文件中。

服务器端:我对我的应用程序进行了一些更改,例如向数据库文件中的表添加额外的列。

我从服务器端进一步安装了新版本的应用程序。

问题:一旦我从客户端打开我的sqlite文件,我以前的所有数据都会丢失。我得到的只是一张空白的桌子。

问题:在安装升级版应用程序后,是否可以维护存储在数据库中的先前数据以及新更改?

c# visual-studio sqlite wix wix3
1个回答
1
投票

这是MSI的一个常见问题,它通常用XML文件表达,但它是一样的。

MSI可以覆盖或不覆盖该文件,无论哪种方式都是错误的。您希望架构更改,但您不希望丢失用户数据,并且MSI文件是原子的。

最好的办法是使用MSI安装的文件作为种子/模型,在应用程序运行时将其克隆到另一个目录并在那里存储用户数据。在后续登录时,检查种子数据库是否有架构更改,并以此为基础以编程方式迁移克隆的数据库。

© www.soinside.com 2019 - 2024. All rights reserved.