SQL Database 프로젝트 호스팅 통합 .NET.NET Aspire
메모
이 통합은 .NET.NET Aspire 커뮤니티 도구 키트 일부이며 .NET.NET Aspire 팀에서 공식적으로 지원하지 않습니다.
이 문서에서는 호스팅된 통합 기능을 갖춘 .NET Aspire SQL Database Projects를 사용하여 데이터베이스 스키마를 SQL Server 데이터베이스에 게시하는 방법을 알아봅니다.
필수 구성 요소
이 통합을 위해서는
호스팅 통합
통합을 시작하려면 .NET.NET Aspire SQL Database 프로젝트 호스팅과 함께 앱 호스트 프로젝트에 📦 CommunityToolkit를 설치하고,Aspire.Hosting.SqlDatabaseProjects NuGet 패키지를 추가하세요.
dotnet add package CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects
자세한 내용은 dotnet add package 또는 .NET 응용 프로그램에서 패키지 종속성을 관리하기를 참조하세요.
예제 사용
📦 MSBuild.Sdk.SqlProj 또는 📦 Microsoft.Build.Sql 프로젝트에 대한 참조를 추가하여 .NET.NET Aspire 앱 호스트 프로젝트에서 게시하려는 프로젝트를 설정하세요.
dotnet add reference ../MySqlProj/MySqlProj.csproj
메모
이 참조를 추가하면 참조가 구문 분석되는 방식 때문에 현재 프로젝트에 경고 ASPIRE004
가 발생합니다.
.NET
.NET Aspire 팀은 이를 인식하고 있으며 보다 깨끗한 솔루션을 위해 노력하고 있습니다.
프로젝트를 .NET.NET Aspire AppHost에 리소스로 추가합니다.
var builder = DistributedApplication.CreateBuilder(args);
var sql = builder.AddSqlServer("sql")
.AddDatabase("test");
builder.AddSqlProject<Projects.MySqlProj>("mysqlproj")
.WithReference(sql);
이제 .NET Aspire 앱 호스트 프로젝트를 실행하면 SQL Database 프로젝트가 지정된 SQL Server에 게시되는 모습을 볼 수 있습니다.
로컬 .dacpac 파일 지원
프로젝트 참조가 아닌 다른 위치에서 .dacpac 파일을 소싱하는 경우 .dacpac 파일의 경로를 직접 지정할 수도 있습니다.
var builder = DistributedApplication.CreateBuilder(args);
var sql = builder.AddSqlServer("sql")
.AddDatabase("test");
builder.AddSqlProject("mysqlproj")
.WithDacpac("path/to/mysqlproj.dacpac")
.WithReference(sql);
배포 옵션 지원
패키지 배포의 동작에 영향을 주는 옵션을 정의하려면 WithConfigureDacDeployOptions
API를 호출합니다.
var builder = DistributedApplication.CreateBuilder(args);
var sql = builder.AddSqlServer("sql")
.AddDatabase("test");
builder.AddSqlProject("mysqlproj")
.WithConfigureDacDeployOptions(options => options.IncludeCompositeObjects = true)
.WithReference(sql);
builder.Build().Run();
앞의 코드는 다음과 같습니다.
-
sql
SQL server 리소스를 추가하고test
데이터베이스 리소스를 추가합니다. -
mysqlproj
SQL 프로젝트 리소스를 추가하고, 그 다음 DacDeployOptions을 구성합니다. - SQL 프로젝트 리소스는 데이터베이스 리소스에 따라 달라집니다.
재배포 지원
앱 호스트가 실행되는 동안 SQL Database 프로젝트를 변경하는 경우 .NET.NET Aspire 대시보드에서 Redeploy
사용자 지정 작업을 사용하여 앱 호스트를 다시 시작하지 않고도 업데이트를 다시 배포할 수 있습니다.
참고 항목
.NET Aspire