GitHub Actions의 VS 데이터베이스 프로젝트에서 *.dacpac 파일 생성
데이터베이스 작업이 필요하고 민첩한 개발을 수행하려면 테이블, SP, 함수를 추가하거나 수정할 때마다 이를 컴파일하고 데이터베이스에 대한 배포 파일을 생성하는 흐름이 있어야 합니다.
저는 오랫동안 이 접근 방식을 사용해 왔습니다. 로컬에서 변경을 수행하고 데이터베이스 프로젝트와 비교한 다음 변경 사항을 커밋하고 푸시하면 데이터베이스로 이동될 bacpac 파일이 생성됩니다.
이는 인간의 실수를 야기할 수 있고 데이터베이스에서는 정말 나쁜 소식이 될 수 있는 손으로 작업을 수행하는 모든 문제를 제거합니다.
데이터베이스 프로젝트
Visual Studio에서 데이터베이스 프로젝트를 만들고 데이터베이스를 가져오면 다음과 같이 됩니다.

이 프로젝트에서 컴파일을 실행하면 모든 구조를 포함하는 dacpac 파일이 생성됩니다.

Github 파이프라인
이제 저장소에 코드가 게시되었으므로 이 프로젝트를 컴파일하고 이 dacpac 파일을 생성하고 다운로드하거나 다른 단계에서 사용할 수 있는 위치에 저장하는 작업을 생성해야 합니다.
name: DacpacGithubActions project build
on:
push:
branches: main
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Setup MSBuild
uses: microsoft/setup-msbuild@v1
- name: Navigate to Workspace
run: cd $GITHUB_WORKSPACE
- name: Create Build Directory
run: mkdir artifacts
- name: Build Solution
run: |
msbuild.exe /t:DacpacGithubActions /p:DebugSymbols=false /p:DebugType=None /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:OutDir="../artifacts"
- name: Upload artifact
uses: actions/[email protected]
with:
name: DacpacGithubActionsArtifacts
path: "../artifacts"
이 작업은 여러 작업을 수행하고 솔루션을 빌드하고 결과를 미리 생성된 artifacts 폴더에 저장한 다음 해당 폴더의 파일을 아티팩트에 업로드합니다.
파이프라인 실행
이제 빌드를 트리거해 보세요. 결과는 다음과 같습니다.

실제로 아티팩트를 다운로드하고 콘텐츠를 살펴보면 향후 지속적인 배포 단계를 구현할 때 필요한 것이 바로 dacpac 파일입니다!

코드
이 전체 프로젝트는 Github에 있으며 여기에서 찾을 수 있습니다!
문제나 질문이 있는 경우 @emimontesdeoca로 소셜 미디어를 통해 저에게 연락해 주세요(Twitter에서는 실제로 @emimontesdeocaa이고 끝에 두 개의 aa가 있습니다). 블로그 헤더에서 내 소셜 미디어의 대부분을 찾을 수도 있습니다.
게시물이 마음에 드셨기를 바랍니다! 시아!