跨多个数据库传播模式和代码更改

时间:2014-10-24 15:41:50

标签: sql-server database database-design schema

我正在使用Sql Server 2012 Express,并且有多个重复数据库为应用程序提供服务。项目要求之一是由于各种商业和政府法律而在客户之间进行数据分离。

由于升级和错误修复,我们必须对存储过程,函数和视图进行表模式更改或更新。单独更新每个数据库并不是一个大问题,因为有大约十几个,但在可预见的未来,我们将添加更多的数据库。

我可以使用哪些选项将更改传播到所有数据库,而无需触及每个数据库?我最关心的是意外地跳过数据库和所涉及的时间。

1 个答案:

答案 0 :(得分:0)

Google for"数据库版本控制"。

RedGate专门针对SQL Server product - 它非常好,特别是随着解决方案复杂性的增加。

Here这是一篇非常体面的文章,解释了这个概念。

广泛而简单的术语:

  • 使用命名将数据库更改脚本放在源代码管理中 允许脚本推理它们的约定。例如, 使用一个允许脚本说"运行它们的数字来启动名称 按数字升序排列"。
  • 在脚本中 - 例如构建和部署脚本 - 按升序执行数据库脚本。通常,您希望跟踪在每个环境中运行的数据库脚本(例如" dev"," test"" production")。只执行你尚未运行的那些。
  • 在配置新环境时,按数字顺序运行所有脚本。
  • 用于可选的额外完整性,将数据库脚本耦合到软件版本(例如,应用程序版本12.4取决于最多101个数据库脚本)。这允许您通过具有相应数据库版本的环境推送软件更改。