Vb.net 部署数据库

Vb.net 部署数据库,vb.net,clickonce,Vb.net,Clickonce,我们有一个带有本地数据库的客户端应用程序。偶尔,我们需要提供数据库更新,包括更改列、添加列等。我们希望检查应用程序是否第一次运行并部署数据库。如果没有,请检查更新。通过单击一次部署数据库更新的最简单方法是什么。 这可能是将脚本部署到文件夹并让本地应用程序检查并运行吗 启用时使用,并确保通过EF迁移处理对数据库的所有更改 当您决定更改服务器应用程序时,请执行以下操作: 更改主应用程序 更改客户端应用程序架构 将新的生成设置版本推送到当前版本-当用户 启动客户端应用程序,除非提供最新版本,否则它将无

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

启用时使用,并确保通过EF迁移处理对数据库的所有更改

当您决定更改服务器应用程序时,请执行以下操作:

更改主应用程序 更改客户端应用程序架构 将新的生成设置版本推送到当前版本-当用户 启动客户端应用程序,除非提供最新版本,否则它将无法工作 下载并运行 下载版本后,在启动时运行EF迁移脚本。
我建议您包括更新数据库的脚本。在脚本中包含版本号。还将版本号存储在数据库中。让应用程序检查是否包含脚本。您可以使用某种模板名称使用通配符检查它们,或者将它们放入资源字符串中。如果存在脚本,请将版本号与数据库中的版本号进行比较,以查看是否需要执行脚本,如果需要,请执行,然后更新数据库中的版本


另一个提示-请不要将您的数据存储在DataDirectory中,请依靠ClickOnce将其转发。这很危险。检查一下告诉你如何处理数据,这样它就不会被ClickOnce更新搞得一团糟

我应该再解释一下。有两个应用程序。一个是网络上已经使用实体框架的主要应用程序。还有一个应用程序有一个本地数据库,因为它需要为网络之外的客户机脱机工作。当我们需要对他们的数据库客户端进行更改时,将更改部署到他们的数据库的最简单方法是什么。我们将通过wcf进行通信。仍不清楚-是否向本地数据库发布应用程序更新?然后一切都如我所描述的那样工作-让该应用程序使用EF来管理DB模式,通过发布更新,您将通过自动迁移促进对该应用程序所需的更改客户端应用程序将使用实体框架与其数据库通信。我们不想每次发布更新时都替换他们端的整个数据库,问题是数据库是他们计算机上的本地数据库。因此,当我们需要向所有客户端发送更新时,我们需要对everyones数据库进行更改,而不是在服务器上。因此,我们希望使用“单击一次”来包含脚本,然后在脚本结束后运行脚本。好的,当客户端已经拥有数据库并且正在运行更新时。运行EF迁移脚本,它是如何工作的。假设我有一个脚本alter table,alter column blah blah需要在本地数据库上运行。我怎样才能让它在启动时运行呢。