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
Installez et configurez l’extension SQL Database Projects.
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 sousBuildDirectory
. 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 désigné parDotNet 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
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 à titre d’information :- 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"/>
- Informations de référence sur les packages
<ItemGroup> <PackageReference Condition="'$(NetCoreBuild)' == 'true'" Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All"/> </ItemGroup>
- 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"