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.
- Debes tener instaladas las características de bases de datos en tu Visual Studio (SSDT).
- Es necesario que tengas un proyecto de base de datos en Visual Studio creado, con el proyecto compilas el archivo .dacpac.
- También debes generar un publish profile, que no es más que un archivo Xml, este lo puedes suscitar 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 será generado.
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 más común que tendrás son OutOfMemoryExceptions que significan que hay errores en tus scripts, no es un asunto de que necesites más memoria.
Referencias:
Autor imagen: CyberHades
- NVL in SQL Server - 2023-11-01
- ¿Que es Cake Build? - 2023-02-22
- #How to fix error: MSB4019: The imported project «Microsoft.Data.Tools.Schema.SqlTasks.targets» was not found - 2023-02-20