C# asp.net core 2.0+中测试、生产服务器中数据库迁移的最佳实践;应用程序

C# asp.net core 2.0+中测试、生产服务器中数据库迁移的最佳实践;应用程序,c#,.net-core,production-environment,asp.net-core-2.1,ef-core-2.1,C#,.net Core,Production Environment,Asp.net Core 2.1,Ef Core 2.1,我正在从事一个新的项目,它是在asp.NET2.1WebAPI 这里我在本地数据库中使用代码优先迁移 所以,要将我的应用程序部署到测试环境,我需要知道 数据库迁移的最佳安全实践,因为这是一个新项目,在未来的日常生活中可能会发生很多变化 除此之外,还提供了一个很好的企业级示例,说明了如何编写.NET核心Web App/API项目,并描述了以下实践,这些实践有助于随着项目规模的增长可靠地扩展项目。它也定期更新 具有责任分离关注点的完整体系结构,坚固耐用 干净代码 领域驱动设计(层和领域模型模式) 域

我正在从事一个新的项目,它是在asp.NET2.1WebAPI 这里我在本地数据库中使用代码优先迁移

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

除此之外,还提供了一个很好的企业级示例,说明了如何编写.NET核心Web App/API项目,并描述了以下实践,这些实践有助于随着项目规模的增长可靠地扩展项目。它也定期更新

  • 具有责任分离关注点的完整体系结构,坚固耐用 干净代码
  • 领域驱动设计(层和领域模型模式)
  • 域事件
  • 域通知
  • CQRS(命令查询责任分离)
  • 活动来源
  • 工作单元存储库和通用存储库

  • 听起来你是在混合迁移和部署。 使用代码迁移首先意味着在数据模型中进行更改。 将代码或数据库部署到生产环境是不同的。 我想你的问题是指部署。 应用程序和数据库的最佳部署方式是实现自动化。 Jenkins、TFS、Teamcity、Octopus是一些流行的CD工具。 要自动化数据库部署,您需要编写自定义库。 在我工作过的一家公司,我们将DDL脚本检入源代码,并自动构建库删除所有存储的过程、函数。运行ddl脚本并重新创建所有存储的过程、函数。
    通过这种方式,我们可以100%确保所有环境(QA、登台、产品)都是同步的。

    您的测试环境是本地的还是托管的?您是希望迁移所有添加的数据还是只应用丢失的迁移?这将是主机到服务器的迁移,而且迁移应该是成熟的,就像自动配置方法一样,如果我们需要切换到生产服务器,将是安全的,因为我在NuGet包和支持dotnet coreok中找到并提供了automatic migrator的研究结果。这很好,而且您尝试过NuGet package fluentmigrator吗?