【问题标题】:Bulk update for customer databases客户数据库的批量更新
【发布时间】:2021-11-22 19:10:22
【问题描述】:

我有 10 个客户数据库(SQL Server),具有相同的架构设计、存储过程、函数等。我需要更改架构设计和一些功能,但我不想一一进行。我想设计一个系统来修改一次并自动将更改推送到所有数据库。有什么建议吗?

【问题讨论】:

  • 那么为什么你有 10 个独立但相同的数据库?
  • @Larnu 我认为这超出了这个问题的范围。这是每个客户(单租户)拥有一个数据库的企业中非常常见的设计。
  • 我认为是,@ChadBaldwin,1 个数据库,1 个部署。我们不知道为什么 OP 选择了 10 个相同的数据库。
  • 查看像 DbUp 这样的工具,它们允许您创建 SQL 更改脚本,并将它们编译成可执行文件,然后您可以针对每个数据库运行 10 或 100 次

标签: sql-server deployment continuous-integration continuous-deployment


【解决方案1】:

我会研究两种产品中的一种,这些是我有一些经验或知识的产品,但绝对有更多的工具可以解决您的问题:

  1. dbatools.io - 这是一个 powershell 套件,允许您使用 PowerShell 与 SQL Server 进行交互。您可以编写在多个数据库甚至多个服务器上运行架构更改的脚本。但是,您可以自行处理回滚、错误处理、验证等。但这确实让工作变得更容易。
  2. RedGate Flyway - 我个人对这个工具没有太多经验。但是根据我在寻找这个答案时的发现,它可能是你的解决方案。有关部署到多个数据库的信息,请参阅 RedGate 的这篇博文: https://www.red-gate.com/hub/product-learning/flyway/automating-migrations-for-multiple-databases-using-flyway

【讨论】:

  • 本网站专门用于推荐产品或工具。
  • @DaleK “使用库 X 将解决您的问题”形式的所有答案都是产品和工具的建议。 OP 询问如何设计某些东西,而答案恰好是“使用这些现有工具之一”。无需责骂回答的人,如果您认为问题不合适,只需投票关闭问题并继续。
  • @StephenJennings 这里没有骂人。在有人告诉他们之前,很多人都没有意识到这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-05
  • 2011-01-18
  • 1970-01-01
  • 2018-09-28
  • 2019-07-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多