我有一个新的ASP.NET MVC项目,它将使用运行多个Web角色的云服务托管在Azure中。我的问题是如何使用FluentMigrator进行生产部署以进行数据库更改。
如果我在TeamCity部署期间运行FluentMigrator,它似乎首先更新数据库,然后一次一个地部署到多个Web角色。因此,似乎某些用户将访问旧版本的站点并使用新的数据库结构,这将导致抛出不匹配和异常。
使用FluentMigrator部署到生产Azure SQL数据库环境的最佳做法/建议是什么?
答案 0 :(得分:1)
首先,请确保您部署到临时插槽,并且只有在您满意的情况下才能进行VIP交换。
如果您的迁移包括添加列,索引和表格之类的内容 - 这些将是非破坏性的更改,您的旧代码应该可以很好地对抗新数据库。
如果您的迁移包括中断更改(更改列名,删除列,更改列数据类型),那么您应该在部署时建立保留页面。 我们在配置文件中设置了一个标志,用于在我们进行这些类型的部署时提供保留页面。