2015-09-28 144 views
0

我们有一个带有本地数据库的客户端应用程序。偶尔我们需要更新数据库,包括更改列,添加列等等。我们想要检查应用程序是否在第一次部署数据库时运行。如果没有,请检查更新。通过点击一次部署数据库更新最简单的方法是什么? 这是否可以将脚本部署到文件夹并让本地应用程序检查并运行?部署数据库

回答

0

使用entity frameworkautomatic migrations开启,并确保通过EF迁移处理数据库的所有更改。

,当你决定改变服务器应用程序 - 您执行以下操作:

  1. 变化主要应用
  2. 更改客户端应用程序架构
  3. 推新版本设定的版本是最新的 - 这样一来,当用户 启动客户端应用程序,除非最新版本是 下载并运行
  4. 将无法​​工作当下载版本时,启动时运行EF迁移脚本。
+0

我应该多解释一下。有两个应用程序。一个是已经使用实体框架的网络上的主要应用。然后还有另一个具有本地数据库的应用程序,因为它需要为网络外的客户端脱机工作。当我们需要对其数据库(客户端)进行更改时,将变更部署到其数据库的最简单方法是什么。我们将通过wcf进行沟通。 – Sirus

+0

我们使用clickonce发布更新 – Sirus

+0

仍然不清楚 - 使用本地数据库发布应用程序更新?那么一切都按我描述的那样工作 - 让该应用程序使用EF来管理数据库模式,并通过发布更新,您将通过自动迁移来促进对应用程序的所需更改 – avs099

0

我建议您包含更新数据库的脚本。在脚本中包含一个版本号。还在数据库中存储版本号。让应用程序检查是否包含脚本。您可以使用某种模板名称以通配符检查它们,或将它们放入资源字符串中。如果有脚本,请将版本号与数据库中的版本号进行比较,以确定是否需要执行脚本,如果是,请执行此操作,然后更新数据库中的版本。

另一个提示 - 请不要将您的数据存储在DataDirectory中,并依靠ClickOnce将其继续前进。这很危险。查看this article,告诉您如何处理数据,以免它被ClickOnce更新所淹没。