Deployment 部署后如何应用数据库更新?

Deployment 部署后如何应用数据库更新?,deployment,Deployment,我知道这是这些董事会经常问的问题。通常,问题是如何在部署数据库之前管理对数据库所做的更改。大多数情况下,答案是为数据库编写脚本并将其保存在sourcecontrol下,然后将任何其他更新也保存为版本控制下的脚本。(例如。) 我的问题是,什么时候最好在安装程序中应用数据库更新,还是新版本首次运行并连接到数据库?请注意,这是一个部署到客户的WinApp,每个客户都有自己的数据库。要添加到脚本中的一件事:在应用更改之前备份数据库(或至少备份您正在更改的表!)。要添加到脚本中的一件事:备份数据库(或至少

我知道这是这些董事会经常问的问题。通常,问题是如何在部署数据库之前管理对数据库所做的更改。大多数情况下,答案是为数据库编写脚本并将其保存在sourcecontrol下,然后将任何其他更新也保存为版本控制下的脚本。(例如。)


我的问题是,什么时候最好在安装程序中应用数据库更新,还是新版本首次运行并连接到数据库?请注意,这是一个部署到客户的WinApp,每个客户都有自己的数据库。

要添加到脚本中的一件事:在应用更改之前备份数据库(或至少备份您正在更改的表!)。

要添加到脚本中的一件事:备份数据库(或至少备份您正在更改的表!)在应用更改之前。

作为一个用户,我想我更喜欢在安装过程中进行更改,并且更进一步,安装程序可以在出现故障时自动回滚。我在这里的想法是,如果我正在安装更新,我想知道更新何时完成,它是否真的完成并成功。我不希望下次运行时出现一条消息,通知我某些操作失败,我可能丢失了所有数据。我认为系统管理员可能也会感谢安装时的反馈(当然,如果您的web应用程序不是将安装在网络上的东西,这并不重要)。此外,正如ראובן所说,备份数据库将是一种很好的便利。

作为一个用户,我认为我更希望它发生在安装过程中,并且更进一步,安装程序可以在发生故障时自行回滚。我在这里的想法是,如果我正在安装更新,我想知道更新何时完成,它是否真的完成并成功。我不希望下次运行时出现一条消息,通知我某些操作失败,我可能丢失了所有数据。我认为系统管理员可能也会感谢安装时的反馈(当然,如果您的web应用程序不是将安装在网络上的东西,这并不重要)。另外,正如ראובן所说的,备份数据库将是一种非常方便的方式。

您对应用程序的体系结构没有太多介绍,但由于涉及到安装程序,我假设它是一个客户机/服务器应用程序

如果你有一个服务器安装程序,那就是你想把它放在的地方,因为数据库结构只会改变一次。由于客户端安装程序需要了解更改,因此最好有一种方法来检测数据库版本更改,并且旧客户端能够自动从服务器下载客户端更新并应用它

如果您只有一个客户端安装程序,我仍然认为最好将其放在那里(可能作为一个定制操作,触发可执行文件以更新数据库)。但这真的无关紧要,因为从概念上讲,新版本的安装程序或第一次用户无论如何都必须对数据库进行更改。数据库更改将在数据库上设置结构锁,因此,实际上,在应用数据库更新时,每个人都必须从系统中退出


当然,如果不是客户机-服务器,这都是BS。

您对应用程序的体系结构没有太多介绍,但由于涉及到安装程序,我假设它是客户机/服务器应用程序

如果你有一个服务器安装程序,那就是你想把它放在的地方,因为数据库结构只会改变一次。由于客户端安装程序需要了解更改,因此最好有一种方法来检测数据库版本更改,并且旧客户端能够自动从服务器下载客户端更新并应用它

如果您只有一个客户端安装程序,我仍然认为最好将其放在那里(可能作为一个定制操作,触发可执行文件以更新数据库)。但这真的无关紧要,因为从概念上讲,新版本的安装程序或第一次用户无论如何都必须对数据库进行更改。数据库更改将在数据库上设置结构锁,因此,实际上,在应用数据库更新时,每个人都必须从系统中退出


当然,如果不是客户机-服务器,这都是BS。

更新:这是客户机-服务器应用。更新:这是客户机-服务器应用。