测试数据库迁移的最佳实践,asp.net core 2.0 + app中的生产服务器

时间:2019-01-05 14:31:22

标签: c# .net-core production-environment asp.net-core-2.1 ef-core-2.1

我正在研究一个新项目,该项目位于asp.net 2.1 Web API中 这里我在本地数据库中使用代码优先迁移

所以要部署我的应用程序以测试环境我需要知道 最佳和安全的数据库迁移实践,因为这是一个新项目,未来的日常工作可能会发生很多变化

2 个答案:

答案 0 :(得分:1)

Best practices are actually provided by Microsoft here

除此之外,this repository提供了一个良好的企业级示例,说明如何编写.NET Core Web App / API项目,并描述了以下实践,这些实践可随着项目规模的扩大可靠地扩展项目。它也会定期更新。

  1. 具有责任分离问题,SOLID和 清理代码
  2. 域驱动设计(层和域模型模式)
  3. 域事件
  4. 域通知
  5. CQRS(命令查询职责隔离)
  6. 事件来源
  7. 工作单元存储库和通用存储库

答案 1 :(得分:1)

听起来您正在将迁移与部署混合在一起。 使用Code First进行迁移意味着对数据模型进行更改。 将代码或数据库部署到生产环境是不同的。 我假设您是指问题中的部署。 对应用程序和数据库进行部署的最佳方法是使其自动化。 Jenkins,TFS,Teamcity和Octopus是一些流行的CD工具。 要自动化数据库部署,您需要编写自定义库。 在我工作的一家公司中,我们签入DDL脚本以获取源代码,并且自动构建库删除所有存储的proc,function。运行ddl脚本并重新创建所有存储的proc,函数。 这样,我们可以100%确保所有环境(QA,Staging,Prod)都处于同步状态。