次の方法で共有


DACPAC ファイルを確認する

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceMicrosoft Fabric 内の SQL データベース

既存の SQL プロジェクトを SDK スタイルのプロジェクトに変換するプロセスは、.sqlproj ファイルを手動で編集して、Microsoft.Build.Sql SDK スタイルのプロジェクト形式を含めます。 変換を開始する前に、プロジェクト ファイルをバックアップし、プロジェクトの .dacpac をアーカイブすることをお勧めします。 プロジェクトからビルドされた "before" と "after" .dacpac を比較することで、変換プロセスが正しく完了したことを確認できます。

DacpacVerify CLI (プレビュー) は、2 つの.dacpac ファイルを比較し、ファイル間の違いを出力するコマンド ライン ツールです。 このツールは、変換の前後に .dacpac ファイルを比較することで、プロジェクトの変換が成功したことを確認するのに役立ちます。

[前提条件]

SqlPackage コマンド ライン ツールと同様に、DacpacVerify CLI (プレビュー) は dotnet ツールとして使用できます。 DacpacVerify は Windows、macOS、Linux にインストールでき、 コンピューターに .NET SDK をインストールする必要があります。 DacpacVerify CLI をインストールするには、次のコマンドを実行します。

dotnet tool install --global Microsoft.DacpacVerify --prerelease

DacpacVerify ツール

DacpacVerify ツールの基本的な使用方法には、 dacpacverify コマンドを実行した後、比較する 2 つの .dacpac ファイルへのパスが含まれます。

dacpacverify before.dacpac after.dacpac

このツールは、2 つのファイル間の違いの概要を出力します。 .dacpac ファイルの検証には、次のものが含まれます。

  • デプロイ前スクリプト
  • デプロイ後のスクリプト
  • SQLCMD 変数
  • データベース参照
  • データベースのプロパティ/オプション
  • データベース オブジェクト (テーブル、ビュー、ストアド プロシージャなど)

変換されたプロジェクトを確認する

この例では、SQL プロジェクト変換の前後に .dacpac ファイルを比較して、プロジェクト変換を検証します。 変換の前に、プロジェクトをビルドし、 .dacpac ファイルを作成します。既定では、 bin/Debug フォルダーになります。 後で別のフォルダーにbefore.dacpac名前と比較するために、.dacpac ファイルのコピーを作成します。

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <Name>ConversionTest</Name>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectVersion>4.1</ProjectVersion>
    <ProjectGuid>{<unique identifier>}</ProjectGuid>
    <DSP>Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider</DSP>
    <OutputType>Database</OutputType>
    <RootPath>
    </RootPath>
    <RootNamespace>ConversionTest</RootNamespace>
    <AssemblyName>ConversionTest</AssemblyName>
    <ModelCollation>1033, CI</ModelCollation>
    <DefaultFileStructure>BySchemaAndSchemaType</DefaultFileStructure>
    <DeployToDatabase>True</DeployToDatabase>
    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
    <TargetLanguage>CS</TargetLanguage>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <SqlServerVerification>False</SqlServerVerification>
    <IncludeCompositeObjects>True</IncludeCompositeObjects>
    <TargetDatabaseSet>True</TargetDatabaseSet>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <OutputPath>bin\Release\</OutputPath>
    <BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
    <TreatWarningsAsErrors>False</TreatWarningsAsErrors>
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <OutputPath>bin\Debug\</OutputPath>
    <BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
    <!-- Default to the v11.0 targets path if the targets file for the current VS version isn't found -->
    <SSDTExists Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets')">True</SSDTExists>
    <VisualStudioVersion Condition="'$(SSDTExists)' == ''">11.0</VisualStudioVersion>
  </PropertyGroup>
  <Import Condition="'$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
  <Import Condition="'$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
  <ItemGroup>
    <Folder Include="Properties" />
  </ItemGroup>
  <ItemGroup>
    <Build Include="Table1.sql" />
    <Build Include="View1.sql" />
    <Build Include="View2.sql" />
  </ItemGroup>
  <ItemGroup>
    <SqlCmdVariable Include="EnvironmentName">
      <DefaultValue>
      </DefaultValue>
      <Value>$(SqlCmdVar__1)</Value>
    </SqlCmdVariable>
  </ItemGroup>
</Project>