Hoy traemos un tema interesante relacionado con el mundo de las bases de datos en la nube, específicamente en Azure SQL. Vamos a hablar de una herramienta muy útil para subir bases de datos a Azure SQL: el conocido comando SQLPackage.
Para empezar, necesitas descargar esta herramienta. Lo más sencillo es descargar el ejecutable MSI desde este enlace: https://learn.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage-download?view=sql-server-ver16.
No te preocupes, la instalación es muy sencilla, solo tienes que seguir los pasos habituales, y no es necesario reiniciar el equipo.
Una vez que tengas SQLPackage instalado, ve al directorio donde se encuentra el ejecutable sqlpackage.exe. Por lo general, dependiendo de la versión, lo encontrarás en la carpeta:
C:\Program Files\Microsoft SQL Server\160\DAC\bin.
El primer comando a ejectuar es SQLPackage con la acción «EXPORT». Con este comando, crearás un archivo bacpac, que contiene la estructura y los datos de tu base de datos. Además de eso, debes proporcionar el nombre de la base de datos, el nombre del servidor (en este ejemplo, localhost), tu nombre de usuario y contraseña:
.\sqlpackage.exe /Action:Export /TargetFile:"C:\backup\AdventureWorksLT2019.bacpac" /SourceServerName:"localhost" /SourceDatabaseName:"AdventureWorksLT2019" /SourceUser:"UserOrigen" /SourcePassword:"PassOrigen" /p:VerifyExtraction=False /SourceTrustServerCertificate:True
El siguiente paso es la importación en Azure. Aquí asumimos que ya tienes un servidor Azure SQL, con la posible ventaja de que podemos ya tenerla dentro de un ElasticPool o con una serie de configuraciones y ventajas que solo nos proporciona Azure. Si no lo tienes, créalo antes de continuar. En nuestro ejemplo, vamos a crear la base de datos en el mismo proceso de importación. La única diferencia con el paso anterior es que ahora usamos el valor «IMPORT» en el parámetro «ACTION”:
.\sqlpackage.exe /Action:Import /TargetServerName:srvazuresqldesarrollo.database.windows.net /TargetDatabaseName:AdventureWorksLT2019 /TargetUser:UserTarget /TargetPassword:PassTarget /SourceFile:"C:\backup\AdventureWorksLT2019.bacpac" /p:DatabaseEdition=Standard /p:DatabaseServiceObjective=S1
Ten en cuenta que en este comando también configuramos la edición y el objetivo de la base de datos, lo que afecta al tiempo que tarda la importación.
Con estas configuraciones, la herramienta de SQLPackage no solo trae la estructura de la BBDD, sino también los datos. ¿Mola, verdad? Puedes importar tablas, vistas, funciones, procedimientos y más.
Si ejecutas un SELECT, también podrás ver los datos:
Si quieres explorar más opciones, métodos de autenticación, parámetros y otros detalles, échale un vistazo a este enlace:
https://learn.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage?view=sql-server-ver16
¡Gracias por leernos y nos vemos en la próxima!