Ste*_*ane 7 entity-framework-core azure-devops asp.net-core-2.2
我们正在使用 Entity Framework core 和 Azure DevOps 构建一个 ASP.net 应用程序,并使用 MSSQL server 2016 定位 IIS。
我们的测试服务器是包含 IIS 和 SQL 服务器实例的本地 Windows 2016 机器。
我已经成功编写了一个部署工作流,可以在代码本身的测试服务器上进行持续部署,但我找不到任何部署数据库的方法。第一个版本的目标是 asp.net core 2.0,所以我可以使用命令行在 IIS 之外启动应用程序并触发数据库更新,但是当我们切换到 2.2 和进程内 IIS 部署时,我们显然失去了这种能力。
我想将数据库的部署集成到部署管道中的服务器,包括数据库创建,但我找不到任何使用 Azure Devops 的方法:我可以针对 Azure SQL 实例,但是,除非我我错过了一些东西,而不是本地的。
所以:
编辑:为了在本地部署,我遵循以下两个步骤:
1. 创建数据库脚本
您可以创建普通的创建数据库脚本,该脚本在本地数据库实例中创建数据库。
2. 应用迁移
创建简单的控制台应用程序,该应用程序首先运行创建数据库脚本,然后应用迁移。
myDbContext.Database.Migrate();
Run Code Online (Sandbox Code Playgroud)
我就是这样让它发挥作用的。
以前有关将数据库发布到 Azure 的内容:
您需要“Azure SQL 发布”任务。先决条件是您应该已经创建了 Azure SQL 数据库。
脚步:
步骤1:在构建管道中生成迁移脚本的命令
创建命令行任务来生成迁移脚本:
dotnet ef migrations script -i -o %BUILD_ARTIFACTSTAGINGDIRECTORY%\migrate.sql --project EfMigrationApp.Database\EfMigrationApp.Database.csproj --startup-project EfMigrationApp\EfMigrationApp.csproj -i -o %BUILD_ARTIFACTSTAGINGDIRECTORY%\migrate.sql
Run Code Online (Sandbox Code Playgroud)
步骤 2:在发布管道中发布 Azure SQL
操作:发布类型:SQL 脚本文件 Sql 脚本应如下所示:
$(System.ArtifactsDirectory)/_$(Build.DefinitionName)/drop/migrate.sql
Run Code Online (Sandbox Code Playgroud)
请参阅本文以了解如何设置 CI 管道。请参阅本文以了解如何设置 CD 管道。
| 归档时间: |
|
| 查看次数: |
4153 次 |
| 最近记录: |