Genere archivos *.dacpac desde el proyecto de base de datos VS en GitHub Actions

· 2 min de lectura

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!