编辑数据库后更新桌面软件的正确方法是什么?

What is the correct way to update a desktop software after editing its database?

我的客户正在使用一个桌面应用程序。我会不时地修复一些错误、添加功能并推送新的更新。更新的工作方式如下(自动):

  1. 为应用程序 (Winrar) 下载新文件。
  2. 将文件提取到临时文件夹。
  3. 将文件复制到应用程序文件夹(覆盖现有文件)。

就是这样。我不接触数据库,它是一个位于其自己文件夹中的 MS Access 文件。我只是更新文件,而不是数据库,因为我不想让客户丢失他们的数据。

现在我已经对数据库进行了一些架构更改(添加了一些列、表...),所以这次我也必须更新数据库文件。

我怎样才能更新这些数据库文件,使客户不会丢失他们的数据?

一个选项是将更改定义为一系列 SQL 命令,例如针对数据库的 ALTER TABLE 到 运行。将这些命令放在一个(或多个)特殊文件中,并将逻辑构建到您的更新程序中(或在您的应用程序启动期间)以检测并 运行 它们。

这样做的额外好处是,您可以通过管理应用源代码的版本控制系统来保留这些更改。