Partager via


Générer un projet de base de données à partir de la ligne de commande

Même si l’extension SQL Database Project fournit une interface utilisateur graphique pour générer un projet de base de données, une expérience de génération à la ligne de commande est également disponible pour les environnements Windows, macOS et Linux. Les étapes de génération d’un projet à partir de la ligne de commande sont différentes entre les projets SQL de style Kit de développement logiciel (SDK) et le format de projet SQL de style non Kit de développement logiciel (SDK) précédent. Cet article décrit les prérequis et la syntaxe nécessaires pour générer un DACPAC à partir de la ligne de commande pour les deux types de projet SQL.

Projets SQL de type SDK (préversion)

L’utilisation de Microsoft.Build.Sql avec des projets SQL de style kit de développement logiciel (SDK) est la meilleure méthode pour travailler avec des projets SQL à partir de la ligne de commande.

Pour générer un projet SQL de style kit de développement logiciel (SDK) à partir de la ligne de commande sur Windows, macOS ou Linux, utilisez la commande suivante :

dotnet build /p:NetCoreBuild=true

Notes

Les projets SQL de style kit de développement logiciel (SDK) sont actuellement en préversion.

Projets SQL de style non kit de développement logiciel (SDK)

La section suivante décrit une solution de contournement permettant d’utiliser des projets SQL qui ne sont pas de type SDK à partir de la ligne de commande sur Windows, macOS et Linux.

Prérequis

  1. Installez et configurez l’extension SQL Database Projects.

  2. Les dll .NET Core suivantes et le fichier Microsoft.Data.Tools.Schema.SqlTasks.targets cible sont nécessaires pour générer un projet de base de données SQL à partir de la ligne de commande dans toutes les plateformes prises en charge par l’extension Azure Data Studio pour les projets de base de données SQL. Ces fichiers sont créés par l’extension lors de la première génération effectuée dans l’interface Azure Data Studio, puis placés dans le dossier de l’extension sous BuildDirectory. Par exemple, sur Linux, ces fichiers sont placés dans ~\.azuredatastudio\extensions\microsoft.sql-database-projects-x.x.x\BuildDirectory\. Copiez ces 11 fichiers dans un nouveau dossier accessible, ou notez leur emplacement. Cet emplacement est appelé DotNet Core build folder dans ce document.

    • 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 le projet a été créé dans Azure Data Studio, passez directement à Générer le projet à partir de la ligne de commande. Si le projet a été créé dans SQL Server Data Tools (SSDT), ouvrez le projet dans l’extension de projet Azure Data Studio SQL Database. L’ouverture du projet dans Azure Data Studio met automatiquement à jour le fichier sqlproj avec trois modifications, indiquées ci-dessous à titre d’information :

    1. Conditions d’importation
    <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. Informations de référence sur les packages
    <ItemGroup>
        <PackageReference Condition="'$(NetCoreBuild)' == 'true'" Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All"/>
    </ItemGroup>
    
    1. Cible propre, nécessaire pour la prise en charge de la double modification dans SQL Server Data Tools (SSDT) et Azure Data Studio
    <Target Name="AfterClean">
        <Delete Files="$(BaseIntermediateOutputPath)\project.assets.json"/>
    </Target>
    

Générer le projet à partir de la ligne de commande

À partir du dossier .NET complet, utilisez la commande suivante :

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

Par exemple, à partir de /usr/share/dotnet sur 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"  

Étapes suivantes