How to: Deploy un archivo Dacpac usando Powershell.

En este post voy a explicar como desplegar una base de datos en un servidor Sql usando un script Powershell. Necesito automatizar el despliegue de bases de datos para incluirlos en el pipeline, por algún motivo no pude ejecutar sqlpackage.exe directamente, afortunadamente encontré una opción que me funciono en Powershell.

Pasos previos.

  1. Debes tener instaladas las características de bases de datos en tu Visual Studio (SSDT).
  2. Es necesario que tengas un proyecto de base de datos en Visual Studio creado, con el proyecto compilas el archivo .dacpac.
  3. También debes crear un publish profile, que no es mas que un archivo Xml, este lo puedes crear desde el editor de texto o con el IDE.

El perfil de publicación (archivo xml).

Dentro de este archivo van a ir los datos del destino donde ser publicara la base, junto con la ruta del archivo Sql que sera creado.

El script en Powershell.


El script es muy básico, toma un componente escrito .Net y lo ejecuta. Lo mismo que harías mediante la interfaz del Visual Studio.

Ejecutar el script.

Puntos a tener en cuenta.

Te recomiendo probar el despliegue desde la interfaz de Visual Studio, los mensajes de error son vagos en la consola. Si tienes un error en la publicación te vas a encontrar buscando errores en lugares donde aparentemente no hay ningún problema. El error mas común que tendrás son OutOfMemoryExceptions que significan que hay errores en tus scripts, no es un asunto de que necesites mas memoria.

Referencias:

 

Autor imagen: CyberHades

 

 

Gustavo Sánchez