요약

완료됨

SQL Database 프로젝트용 CI/CD는 애플리케이션 팀이 코드에 사용하는 것과 동일한 자동화, 일관성 및 안전망을 데이터베이스 개발에 제공합니다.

이 모듈에서는 다음 방법을 알아보았습니다.

  • SQL Database 프로젝트 만들기, 빌드 및 유효성 검사: 선언적 T-SQL 파일에서 데이터베이스 개체를 정의하고, 아티팩트에 .dacpac 빌드하고, SDK 스타일 Microsoft.Build.Sql 프로젝트 형식을 사용하여 대상 플랫폼에 대한 참조 및 구문의 유효성을 검사합니다.
  • 원본 제어 구성 및 참조 데이터 관리: Git에 SQL 데이터베이스 프로젝트를 배치하고, 개체 유형별로 파일을 구성하고, SQLCMD :r 포함으로 배포 후 스크립트 및 배포 후 스크립트를 사용하여 스키마와 함께 참조 데이터를 관리합니다.
  • 분기, 끌어오기 요청 및 충돌 해결 관리: 데이터베이스 변경에 기능 분기를 사용하고, 끌어오기 요청에서 T-SQL 차이 검토, 개체 수준에서 병합 충돌을 해결하고, 프로젝트 빌드를 사용하여 병합된 결과의 유효성을 검사합니다.
  • 스키마 드리프트 검색 및 해결: 스키마 비교 도구를 사용하여 라이브 데이터베이스와 SQL Database 프로젝트를 비교하고, SqlPackage 추출을 사용하여 드리프트 검색을 자동화하고, 배포 보고서 및 스크립트를 사용하여 계획된 변경 내용을 검토합니다.
  • 배포 제어를 사용하여 CI/CD 파이프라인 구현: GitHub Actions() 및 Azure DevOps(.dacpacazure/sql-action)를 사용하여 파일을 빌드 및 배포 SqlAzureDacpacDeployment 하고, 리포지토리 비밀 및 Azure Key Vault를 통해 비밀을 관리하고, 환경 승인, 분기 정책 및 코드 소유자를 사용하여 프로덕션을 보호합니다.
  • 테스트 전략 설계 및 구현: 테스트 조건(행 개수, 스칼라 값, 예상 스키마)을 사용하여 SQL Server 단위 테스트를 만들고, 오류 처리에 대한 부정 테스트를 작성하고, 테스트를 CI/CD 파이프라인에 통합하여 배포 전에 논리 오류를 catch합니다.

자세히 보기