SQL Server:升级数据库

发布于 2024-07-09 18:32:51 字数 101 浏览 5 评论 0原文

我们有一款使用 Microsoft SQL Server 数据库的产品。 我们有客户使用该产品的各种旧版本。

在这种情况下,人们如何编写/构建他们的数据库升级脚本?

We've got a product that uses a Microsoft SQL Server database. We've got customers using various older versions of the product.

How do people write/structure their database upgrade scripts in this situation?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

回梦 2024-07-16 18:32:51

您需要一组版本间的补丁脚本。 在具有实时数据的生产系统上,这有点棘手,因为您可能还必须操作这些脚本中的数据。

Redgate SQL Compare Pro 是一个非常好的工具,用于生成这些脚本或对脚本执行 QA 功能(显然您不应该真正将它用于这两个角色)。 由于涉及实时客户数据,因此您必须对升级进行回归测试。

我认为没有一个简单的方法可以做到这一点。 您将必须开发脚本并测试它所做的任何数据操作。 对一些有用的升级集进行不同版本的测试。 这里的关键是安排一个生产镜像测试环境,您可以在将补丁应用到实时系统之前在其中测试补丁。

PS 在实际最终运行补丁脚本之前,不要忘记在生产数据库上备份和测试恢复,但您已经知道了;-}

You need a set of release-to-release patch scripts. On production systems with live data this is a bit trickier as you may also have to manipulate data in these scripts.

Redgate SQL Compare Pro is quite a good tool for generating these scripts or doing QA functions on scripts (obviously you shouldn't really use it for both roles). Because you have live customer data involved you will have to regression test the upgrades.

I don't think there's an easy way to do this. You will have to develop the script and test any data manipulations that it does. Do the tests from version to version for some useful set of upgrades. The key here is to arrange a production mirror test environment that you can test the patches in before you apply them to a live system.

P.S. don't forget to back up and test restore on the production database before you actually finally run the patch script, but you already knew that ;-}

我早已燃尽 2024-07-16 18:32:51

我们有一个 SQL 脚本可以执行全新安装和升级。 安装 SQL Express 或完整 SQL Server 后,我们运行此脚本执行以下操作:

  1. 如果表不存在,则使用 CREATE TABLE 创建表。
  2. 删除并重新创建所有存储过程
  3. 对表进行修改,例如字段更改、字段添加等。

我们不断扩展此脚本,因此每个版本只会添加到此 SQL 脚本文件。 这意味着我们可以在生产系统上运行此脚本以将其更新到最新架构,使用新安装的脚本从头开始创建架构。

这样我们就可以保证升级脚本甚至可以将最旧的安装升级到最新版本。

We have one SQL script that does both a clean installation and an upgrade. After installing SQL Express or full SQL server, we run this script that does the following:

  1. Creates the tables if they don't exist with CREATE TABLE.
  2. Delete and recreate all stored procedures
  3. Make modifications to tables such as field changes, field additions etc.

We keep on extending this script, so each release will only add to this SQL script file. This means we can run this script on production systems to update them to the latest schema use the script for new installations to create the schema from scratch.

This way we're guaranteed that the upgrade script will bring even the oldest installation up to the latest version.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文