Azure:使用代码优先迁移在临时环境中进行测试的最佳实践

Man*_*ish 13 entity-framework azure ef-migrations

我在Windows Azure中进行了以下设置:

  • 连接到其自己的"测试"数据库的"测试"托管服务.
  • "生产"托管服务连接到其自己的"生产"数据库.

当构建已经被验证的测试,并准备去生产,我们旋转了一个"临时"部署在生产托管服务,做一个快速的烟雾测试,以确保新的建设是不完全打破.使用将部署到生产的确切位来部署临时实例,因此它正在与生产数据库进行通信.当登台受祝福时,我们点击"VIP交换"按钮,构建在生产时生效.一切都很好.

数据库模型更改时会出现问题.我有Code First Migrations完美运行.我可以添加新的迁移,使用包管理器控制台在本地应用它们,然后在我推送新版本进行测试时生成SQL脚本以升级测试数据库.问题是,使用Code First Migrations以及登台/生产部署的最佳做法是什么?当我使用模型更改将新构建部署到分段时,它期望找到与其模型匹配的数据库.但是,如果我将模型更改应用于生产数据库,则生产实例会抱怨,因为其模型不匹配.

我刚刚跳过了分期烟雾测试.我上传到暂存,然后更新生产数据库并同时点击"VIP交换"按钮.然后对生产进行烟雾测试.如果某些内容严重破坏,请"切换VIP"并恢复数据库更改.

有没有更好的方法来做到这一点,还是那么多呢?

谢谢!

Avk*_*han 0

我不确定什么是最佳实践,因为我找不到任何实践,而且用户似乎正在使用最适合他们的项目并且最适合他们的实践。在一种情况下,解决方案与您所描述的计划类似,其中当生产数据库为空时,首先使用 EF 代码创建临时数据库并应用迁移。测试完成后,脚本将被转移到另一个数据库,该数据库随后与生产连接。