介绍

已完成

数据库更改的手动部署过程缓慢且容易出错。 某人编写一个脚本,通过电子邮件发送给数据库管理员,并等待在维护窗口期间运行。 如果出现问题,回滚会很困难,因为没有人跟踪更改前架构的确切状态。 同时,由于没有结构化的数据库代码工作流,从事不同功能开发的开发人员会相互覆盖对方的更改。

假设一个团队在 Azure SQL 数据库上管理电子商务应用程序。 三位开发人员正在添加需要架构更改的功能。 一个添加一个新的产品类别表,另一个修改订单处理存储过程,第三个更新客户查找视图。 如果没有源代码管理、CI/CD 管道和自动测试,这些更改将相互冲突。 直接应用于生产环境的修复补丁与开发环境失去同步。 部署覆盖了热修复,导致高峰时段生产环境中断。

SQL 数据库项目和 CI/CD 管道通过处理与应用程序代码相同的严格数据库代码来解决这些问题。 对每个对象进行版本控制,自动执行生成和部署,检测实时数据库何时偏离项目,并在更改到达生产环境之前对其进行测试。

完成本模块后,你能够:

  • 使用 SQL 数据库项目(包括 SDK 样式)创建、生成和验证数据库模型。
  • 为 SQL 数据库项目配置源代码管理,并使用预部署和部署后脚本管理引用数据。
  • 管理数据库代码的分支、拉取请求和冲突解决。
  • 使用架构比较工具和 SqlPackage 检测架构偏移。
  • 使用 GitHub Actions 和 Azure DevOps 实现 CI/CD 管道,包括机密管理和部署控制。
  • 使用单元测试和集成测试设计和实现测试策略。