Bud*_*ode 7 c# continuous-integration entity-framework continuous-deployment ef-migrations
我们有一个使用ASP.NET MVC,C#和MySQL编写的Web应用程序,并使用Entity Framework 6作为ORM.
我们正在使用Entity Framework的CodeFirst迁移来控制数据库随时间和从发布到发布的更改.
我们使用Jenkins建立持续集成/部署流程来创建构建工件(存档文件),该构建工件上传到AWS S3,并从那里组合Lambda函数和AWS的CodeDeploy负责将应用程序部署到各种EC2实例.
每个EF Migration都有Up()和Down()方法,允许特定的迁移文件为应用程序代码的特定版本升级和降级数据库.
最近出现的一件事我们没有明确的答案:
如果要重新部署以前版本的应用程序,如何管理数据库的"降级"?
由于应用程序版本(以及代码)较旧,因此任何新的EF迁移文件都不会包含在其中,因此,没有Down()方法可以将数据库恢复到之前的状态,因为Down()方法是所有这些都包含在后来的EF迁移中,现在不再是(旧版本)应用程序代码的一部分.
我们通常不会恢复到我们应用程序的旧版本,但如果我们遇到无法预料的问题,我们可能偶尔会这样做,而且我确信其他人必须处理已升级的数据库的有效回滚/降级通过更新版本的应用程序.
有没有人有任何好的策略来处理数据库回滚/降级,理想情况是以最自动化的方式,理想情况下,使用与旧版本完全相同的先前构建工件(即,无需完全"重建"旧版本)?
| 归档时间: |
|
| 查看次数: |
478 次 |
| 最近记录: |