如何使用Database SSDT c#VSTS EF6 Azure持续交付

时间:2016-11-19 18:05:43

标签: c# database azure-devops sql-server-data-tools continuous-delivery

我想为包含数据库的网站(在Azure上)实施CI和CD。

工具:

  • SSDT(项目数据库)
  • C#
  • VSTS(Visual Studio团队服务)
  • EF6(实体框架6)
  • Azure SQL数据库

即使使用数据库(最难的部分),目标也是完全持续交付。 对于该网站,使用VSTS CD非常简单。但是关于数据库,我无法找到明确的方法。 所以通过一些读数,我打算

  1. 使用SSDT管理数据库。 VSTS构建,使用数据库项目的dacpac通过模式比较自行生成以更新数据库。我只是为数据动作编写sql脚本。
  2. 使用EF6和"反向POCO代码第一个生成器" link
  3. 要实现100%持续交付,即使在数据库架构修改期间,我也无法停止服务。

    所以我读到数据库更新必须与以前的deploiement(运行网站的DAL)兼容。因此,所有数据库架构修改将分为两步,两次交付。第二次交付只能在交付1步时进行。

    所以规则应该是

    1. 不允许重命名表
    2. 不允许重命名列
    3. 添加列 1步
      • 使用默认值
      • 在SSDT中添加列
      • 将属性添加到实体类 2步
      • 删除数据库的默认值
    4. 删除列 1步
      • 删除实体
      • 上的列
      • 按SSDT添加默认值 2步
      • 通过SSDT删除列
    5. 我很漂亮,我正在重新发明轮子,但我找不到完整的教程。 我是好方法吗?微软世界中有没有解决方案?我准备好学习了。谢谢

1 个答案:

答案 0 :(得分:0)

您可以在构建或发布中通过Azure SQL数据库部署步骤/任务将数据库部署到azure。此外,您可以通过VSTS构建或发布将应用程序部署到Azure。

例如:

  1. 添加Azure Resource Manager
  2. 在VSTS上创建构建定义
  3. 添加Visual Studio Build步骤以构建数据库项目,它将生成dacpac文件。
  4. 添加Azure SQL数据库部署步骤,通过dacpac文件将数据库部署到azure(步骤3)
  5. 添加Visual Studio Build步骤以构建您的应用项目
  6. (可选)添加Azure App Service Deploy步骤以根据需要部署您的应用程序(Web)。
  7. (可选)转到触发器并选中持续集成(CI)以进行每次签入的队列构建
  8. There是一篇相关文章(跟进其工作流程,它使用Azure Classic,您可以使用Azure资源管理器)。