Mengonversi proyek SQL asli ke proyek bergaya SDK
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Membuat proyek SQL gaya SDK baru adalah tugas cepat. Namun, jika Anda memiliki proyek SQL yang ada, Anda dapat mengonversinya ke proyek SQL bergaya SDK untuk memanfaatkan fitur baru.
Setelah mengonversi proyek, Anda dapat menggunakan fitur baru proyek gaya SDK, seperti:
- dukungan build lintas platform
- format file proyek yang disederhanakan
- referensi paket
Untuk menyelesaikan konversi dengan hati-hati, kami akan:
- Buat cadangan file proyek asli.
- Buat
.dacpac
file dari proyek asli untuk perbandingan. - Ubah file proyek menjadi proyek bergaya SDK.
- Buat
.dacpac
file dari proyek yang dimodifikasi untuk perbandingan. - Verifikasi bahwa
.dacpac
filenya sama.
Proyek bergaya SDK tidak didukung oleh SQL Server Data Tools (SSDT) di Visual Studio. Setelah dikonversi, Anda harus menggunakan salah satu hal berikut untuk membangun atau mengedit proyek:
- baris perintah
- ekstensi Proyek SQL Database di Visual Studio Code
- ekstensi Proyek SQL Database di Azure Data Studio
Prasyarat
Langkah 1: Buat cadangan file proyek asli
Sebelum Anda mengonversi proyek, buat cadangan file proyek asli. Dengan cara ini, Anda dapat kembali ke proyek asli jika diperlukan.
Di file explorer, buat salinan .sqlproj
file untuk proyek yang ingin Anda konversi dengan .original
ditambahkan di akhir ekstensi file. Misalnya, MyProject.sqlproj
menjadi MyProject.sqlproj.original
.
Langkah 2: Buat .dacpac
file dari proyek asli untuk perbandingan
Buka proyek di Visual Studio 2022. File .sqlproj
masih dalam format asli, jadi Anda membukanya di SQL Server Data Tools asli.
Buat proyek di Visual Studio dengan mengklik kanan simpul database di Penjelajah Solusi dan memilih Bangun.
Untuk membuat .dacpac
file dari proyek asli, Anda harus menggunakan SQL Server Data Tools (SSDT) asli di Visual Studio. Buka file proyek di Visual Studio 2022 dengan SQL Server Data Tools asli terinstal.
Buat proyek di Visual Studio dengan mengklik kanan simpul database di Penjelajah Solusi dan memilih Bangun.
Buka folder proyek di VISUAL Code atau Azure Data Studio. Dalam tampilan Proyek Database visual Studio Code atau Azure Data Studio, klik kanan simpul proyek dan pilih Bangun.
Proyek database SQL dapat dibangun dari baris perintah menggunakan dotnet build
perintah .
dotnet build
# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj
Proses build membuat .dacpac
file di bin\Debug
folder proyek secara default. Menggunakan file explorer, temukan yang .dacpac
dibuat oleh proses build dan salin ke folder baru di luar direktori proyek sebagai original_project.dacpac
. Kami menggunakan file ini .dacpac
untuk perbandingan untuk memvalidasi konversi kami nanti.
Langkah 3: Ubah file proyek ke proyek bergaya SDK
Memodifikasi file proyek adalah proses manual, paling baik dilakukan di editor teks. .sqlproj
Buka file di editor teks dan buat perubahan berikut:
Diperlukan: Tambahkan referensi SDK
Di dalam elemen proyek, tambahkan item untuk mereferensikan Sdk
Microsoft.Build.Sql dan versi terbaru dari https://www.nuget.org/packages/Microsoft.build.sql.
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0">
<Sdk Name="Microsoft.Build.Sql" Version="0.2.0-preview" />
...
Diperlukan: Menghapus impor target build yang tidak perlu
Proyek SQL asli mereferensikan beberapa target build dan properti dalam pernyataan Impor. Kecuali untuk <Import/>
item yang Anda tambahkan secara eksplisit, yang merupakan perubahan unik dan sengaja, hapus baris yang dimulai dengan <Import ...>
.
Contoh untuk dihapus jika ada di .sqlproj
:
...
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Import Condition="..." Project="...\Microsoft.Data.Tools.Schema.SqlTasks.targets"/>
<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" />
...
Diperlukan: Hapus folder Properti
Proyek SQL asli memiliki entri untuk Properties
folder yang mewakili akses ke properti proyek di penjelajah solusi. Item ini perlu dihapus dari file proyek.
Contoh untuk menghapus jika ada di .sqlproj
:
<ItemGroup>
<Folder Include="Properties" />
</ItemGroup>
Opsional: Menghapus referensi SSDT
SQL Server Data Tools (SSDT) asli memerlukan konten tambahan dalam file proyek untuk mendeteksi penginstalan Visual Studio. Baris ini tidak perlu dalam proyek SQL gaya SDK dan dapat dihapus:
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
<!-- Default to the v11.0 targets path if the targets file for the current VS version is not 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>
Opsional: Menghapus pengaturan build default
Proyek SQL asli mencakup dua blok besar untuk pengaturan build Rilis dan Debug, sementara di SQL gaya SDK memproyeksikan default untuk opsi ini diketahui oleh SDK. Jika Anda tidak memiliki kustomisasi ke pengaturan build, pertimbangkan untuk menghapus blok ini:
<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>
Langkah 4: Buat .dacpac
file dari proyek yang dimodifikasi untuk perbandingan
Proyek SQL tidak lagi kompatibel dengan Visual Studio 2022. Untuk membangun atau mengedit proyek, Anda harus menggunakan salah satu dari:
- baris perintah
- ekstensi Proyek SQL Database di Visual Studio Code
- ekstensi Proyek SQL Database di Azure Data Studio
File proyek sekarang dalam format gaya SDK, tetapi untuk membukanya di Visual Studio 2022, Anda harus menginstal Alat Data SQL Server, gaya SDK (pratinjau) dan proyek harus memiliki ekstensi .sqlprojx
file . Buka proyek di Visual Studio 2022 dengan SQL Server Data Tools, gaya SDK (pratinjau) terinstal.
Buka folder proyek di VISUAL Code atau Azure Data Studio. Dalam tampilan Proyek Database visual Studio Code atau Azure Data Studio, klik kanan simpul proyek dan pilih Bangun.
Proyek database SQL dapat dibangun dari baris perintah menggunakan dotnet build
perintah .
dotnet build
# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj
Proses build membuat .dacpac
file di bin\Debug
folder proyek secara default. Menggunakan file explorer, temukan yang .dacpac
dibuat oleh proses build dan salin ke folder baru di luar direktori proyek. Kami menggunakan file ini .dacpac
untuk perbandingan untuk memvalidasi konversi kami nanti.
Langkah 5: Verifikasi bahwa .dacpac
filenya sama
Untuk memverifikasi bahwa konversi berhasil, bandingkan file yang .dacpac
dibuat dari proyek asli dan yang dimodifikasi. Kemampuan perbandingan skema proyek SQL memungkinkan kami memvisualisasikan perbedaan model database.
Anda dapat menggunakan alat perbandingan skema di Visual Studio, Visual Studio Code, atau Azure Data Studio untuk membandingkan .dacpac
file. Alat komunitas berdasarkan pustaka DacFx .NET juga tersedia.
Luncurkan Visual Studio tanpa proyek yang dimuat. Buka Alat>Perbandingan Skema Baru SQL Server.> Pilih file asli .dacpac
sebagai sumber dan file yang dimodifikasi .dacpac
sebagai target. Untuk informasi selengkapnya tentang menggunakan Perbandingan Skema di Visual Studio, lihat menggunakan skema dibandingkan dengan membandingkan definisi database yang berbeda.
Perbandingan skema grafis belum tersedia dalam pratinjau proyek SQL bergaya SDK di Visual Studio. Gunakan Azure Data Studio untuk membandingkan skema.
Perbandingan skema tidak tersedia di Visual Studio Code. Gunakan Azure Data Studio atau Visual Studio untuk membandingkan skema.
Di Azure Data Studio, instal ekstensi SQL Server Schema Compare jika belum diinstal. Luncurkan perbandingan skema baru dari palet perintah dengan membuka palet perintah dengan Ctrl/Cmd+Shift+P
dan mengetik Schema Compare
.
Pilih file asli .dacpac
sebagai sumber dan file yang dimodifikasi .dacpac
sebagai target.
Perbandingan skema grafis tersedia di Visual Studio dan Azure Data Studio.
Ketika perbandingan skema dijalankan, tidak ada hasil yang harus ditampilkan. Kurangnya perbedaan menunjukkan bahwa proyek asli dan yang dimodifikasi setara, menghasilkan model database yang sama dalam .dacpac
file.
Catatan
Perbandingan .dacpac
file melalui perbandingan skema tidak memvalidasi skrip pra/pasca-penyebaran, refaktorlog, atau pengaturan proyek lainnya. Ini hanya memvalidasi model database. Mengonversi .dacpac
ke .zip
arsip dan membandingkan konten secara manual dapat memberikan perbandingan yang lebih rinci.