Compartir a través de


Creación de un proyecto de base de datos desde la línea de comandos

Aunque la extensión de proyectos de SQL Database proporciona una interfaz de usuario gráfica para crear un proyecto de base de datos, también hay disponible una experiencia de compilación de línea de comandos para entornos Windows, macOS y Linux. Los pasos para crear un proyecto desde la línea de comandos son diferentes entre los proyectos SQL de estilo SDK y el formato de proyecto SQL que no es de estilo SDK anterior. En este artículo, se describen los requisitos previos y la sintaxis necesarios para crear un archivo dacpac a partir de un proyecto de SQL desde la línea de comandos para ambos tipos de proyectos de SQL.

Proyectos de SQL de estilo SDK (versión preliminar)

Usar Microsoft.Build.Sql con proyectos SQL de estilo SDK es el método preferido para trabajar con proyectos SQL desde la línea de comandos.

Para crear un proyecto SQL de estilo SDK desde la línea de comandos en Windows, macOS o Linux, use el siguiente comando:

dotnet build /p:NetCoreBuild=true

Nota

Los proyectos SQL de estilo SDK están actualmente en versión preliminar.

Proyectos SQL que no son de estilo SDK

En la sección siguiente, se describe una solución alternativa para trabajar con proyectos de SQL que no son de estilo SDK desde la línea de comandos en Windows, macOS y Linux.

Requisitos previos

  1. Instale y configure la extensión Proyectos de base de datos de SQL.

  2. Los siguientes archivos dll de .NET Core y el archivo de destino Microsoft.Data.Tools.Schema.SqlTasks.targets son necesarios para crear un proyecto de base de datos SQL desde la línea de comandos desde todas las plataformas compatibles con la extensión de Azure Data Studio para SQL Database Projects. Estos archivos se crean mediante la extensión durante la primera compilación completada en la interfaz de Azure Data Studio y se colocan en la carpeta de la extensión en BuildDirectory. Por ejemplo, en Linux, estos archivos se colocan en ~\.azuredatastudio\extensions\microsoft.sql-database-projects-x.x.x\BuildDirectory\. Copie estos 11 archivos en una carpeta nueva y accesible o tome nota de su ubicación. En este documento se hace referencia a esta ubicación como DotNet Core build folder.

    • Microsoft.Data.SqlClient.dll
    • Microsoft.Data.Tools.Schema.Sql.dll
    • Microsoft.Data.Tools.Schema.SqlTasks.targets
    • Microsoft.Data.Tools.Schema.Tasks.Sql.dll
    • Microsoft.Data.Tools.Utilities.dll
    • Microsoft.SqlServer.Dac.dll
    • Microsoft.SqlServer.Dac.Extensions.dll
    • Microsoft.SqlServer.TransactSql.ScriptDom.dll
    • Microsoft.SqlServer.Types.dll
    • System.ComponentModel.Composition.dll
    • System.IO.Packaging.dll
  3. Si el proyecto se creó en Azure Data Studio, vaya directamente a la sección sobre cómo crear el proyecto desde la línea de comandos. Si el proyecto se creó en SQL Server Data Tools (SSDT), abra el proyecto en la extensión SQL Database Projects de Azure Data Studio. Al abrir el proyecto en Azure Data Studio, se actualiza automáticamente el archivo sqlproj con tres modificaciones, las cuales se indican para su información:

    1. Condiciones de importación
    <Import Condition="'$(NetCoreBuild)' == 'true'" Project="$(NETCoreTargetsPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets"/> 
    <Import Condition="'$(NetCoreBuild)' != 'true' AND '$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets"/>
    <Import Condition="'$(NetCoreBuild)' != 'true' AND '$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets"/>
    
    1. Referencia de paquete
    <ItemGroup>
        <PackageReference Condition="'$(NetCoreBuild)' == 'true'" Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All"/>
    </ItemGroup>
    
    1. Destino de limpieza, necesario para admitir la edición dual en SQL Server Data Tools (SSDT) y Azure Data Studio
    <Target Name="AfterClean">
        <Delete Files="$(BaseIntermediateOutputPath)\project.assets.json"/>
    </Target>
    

Creación del proyecto desde la línea de comandos

En la carpeta .NET completa, use el comando siguiente:

dotnet build "<sqlproj file path>" /p:NetCoreBuild=true /p:NETCoreTargetsPath="<DotNet Core build folder>"

Por ejemplo, desde /usr/share/dotnet en Linux:

dotnet build "/home/myuser/Documents/DatabaseProject1/DatabaseProject1.sqlproj" /p:NetCoreBuild=true /p:NETCoreTargetsPath="/home/myuser/.azuredatastudio/extensions/microsoft.sql-database-projects-x.x.x/BuildDirectory"  

Pasos siguientes