Genere archivos *.dacpac desde el proyecto de base de datos VS en GitHub Actions
Si necesita trabajar con bases de datos y desea realizar un desarrollo ágil, debe tener un flujo en el que cada vez que agregue o modifique una tabla, SP o función, la compilará y generará el archivo de implementación para la base de datos.
He estado haciendo este método durante mucho tiempo, hacemos los cambios en local, los comparamos con nuestro proyecto de base de datos y luego, cuando confirmamos y publicamos nuestros cambios, generan un archivo bacpac que irá a la base de datos.
Elimina todos los problemas de hacerlo a mano, lo que puede provocar un error humano y en una base de datos, eso es realmente una mala noticia.
Proyecto de base de datos
Cuando creamos nuestro proyecto de base de datos en Visual Studio e importamos una base de datos, terminará así

Cuando ejecutemos una compilación en este proyecto, generará un archivo dacpac que incluirá toda nuestra estructura.

Canalización de Github
Ahora que tenemos nuestro código publicado en el repositorio, necesitamos crear una acción que compilará este proyecto, generará este archivo dacpac y lo colocará en algún lugar donde podamos descargarlo o usarlo para otro paso.
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"
Esta acción hará un montón de cosas, creará la solución y colocará el resultado en la carpeta artifacts, creada de antemano, luego cargará los archivos de esa carpeta a los artefactos.
Ejecutando la tubería
Ahora continúe y active una compilación, el resultado debería ser el siguiente

Si realmente descargamos el artefacto y echamos un vistazo al contenido, eso es lo que necesitaremos para el futuro, cuando implementemos un paso de implementación continua, ¡el archivo dacpac!

Código
¡Este proyecto completo está en Github y puedes encontrarlo aquí!
Si tienes algún problema o pregunta, no dudes en contactarme en cualquier red social en @emimontesdeoca (en Twitter en realidad es @emimontesdeocaa con dos aa al final). También puedes encontrar la mayoría de mis redes sociales en el encabezado del blog.
Espero que os haya gustado el post! ¡Cya!