Bagikan melalui


Menyesuaikan Build dan Penyebaran Database dengan Menggunakan Kontributor Build dan Penyebaran

Visual Studio menyediakan titik ekstensibilitas yang dapat Anda gunakan untuk memodifikasi perilaku tindakan build dan penyebaran untuk proyek database.

Titik Ekstensibilitas yang Tersedia

Anda bisa membuat ekstensi untuk titik ekstensibilitas, seperti yang diperlihatkan dalam tabel berikut:

Tindakan Tipe Kontributor Catatan
Build BuildContributor Jenis ekstensi ini dijalankan ketika proyek SQL dibangun setelah model proyek divalidasi sepenuhnya. Kontributor build dapat mengakses model yang telah selesai, selain semua properti tugas Build dan argumen kustom apa pun.
Sebarkan DeploymentPlanModifier Jenis ekstensi ini dijalankan ketika proyek SQL disebarkan, sebagai bagian dari alur penyebaran, setelah rencana penyebaran dibuat, tetapi sebelum rencana penyebaran dijalankan. Anda dapat menggunakan DeploymentPlanModifier untuk mengubah rencana penyebaran dengan menambahkan atau menghapus langkah-langkah. Kontributor penyebaran dapat mengakses rencana penyebaran, hasil perbandingan, serta model sumber dan target.
Sebarkan DeploymentPlanExecutor Jenis ekstensi ini dijalankan ketika rencana penyebaran dijalankan dan menyediakan akses baca-saja ke rencana penyebaran. DeploymentPlanExecutor melakukan tindakan berdasarkan rencana penyebaran.

Skenario Ekstensibilitas yang Didukung

Anda dapat menerapkan kontributor build atau penyebaran untuk mengaktifkan contoh skenario berikut:

  • Hasilkan dokumentasi skema selama build proyek - Untuk mendukung skenario ini, Anda menerapkan BuildContributor dan mengambil alih metode OnExecute untuk menghasilkan dokumentasi skema. Anda dapat membuat file target yang menentukan argumen default yang mengontrol apakah ekstensi berjalan dan menentukan nama file output.

  • Buat laporan perbedaan saat proyek SQL disebarkan - Untuk mendukung skenario ini, Anda menerapkan DeploymentPlanExecutor yang menghasilkan file XML saat proyek SQL disebarkan.

  • Ubah rencana penyebaran untuk berubah saat gerakan data terjadi - Untuk mendukung skenario ini, Anda menerapkan DeploymentPlanModifier dan melakukan iterasi atas rencana penyebaran. Untuk setiap SqlTableMigrationStep dalam paket tersebut, Anda memeriksa hasil perbandingan untuk menentukan apakah langkah tersebut harus dilakukan atau dilewati.

  • Salin file ke dacpac yang dihasilkan saat proyek SQL disebarkan - Untuk mendukung skenario ini, Anda menerapkan kontributor penyebaran dan mengambil alih metode OnEstablishDeploymentConfiguration untuk menentukan file mana yang ditandai sebagai DeploymentExtensionConfiguration oleh sistem proyek. File-file ini harus disalin ke folder output dan ditambahkan di dalam dacpac yang dihasilkan. Anda juga dapat memodifikasi kontributor untuk menggabungkan beberapa file ke dalam satu file baru yang disalin ke folder output dan ditambahkan ke manifes penyebaran. Selama penyebaran, Anda dapat menerapkan metode OnApplyDeploymentConfiguration untuk mengekstrak file-file tersebut dari dacpac dan menyiapkannya untuk digunakan dalam metode OnExecute.

Selain itu, Anda dapat mengekspos pasangan argumen nama/nilai yang disesuaikan dari kontributor Anda yang ditulis ke file proyek database. Anda dapat menggunakan argumen ini untuk memungkinkan kontributor mengekstrak informasi dari MSBuild atau untuk mengaktifkan pengguna akhir kontributor Anda untuk menyesuaikan perilaku. Misalnya, Anda dapat mengizinkan pengguna untuk menentukan nama file input atau output.

Tugas umum

Tugas Umum Konten Pendukung
Pelajari selengkapnya tentang poin ekstensibilitas: Anda dapat membaca tentang kelas dasar yang Anda gunakan untuk mengimplementasikan kontributor build dan penyebaran. BuildContributor

DeploymentContributor
Buat kontributor sampel: Pelajari langkah-langkah yang diperlukan untuk membuat kontributor build atau penyebaran. Jika Anda mengikuti panduan ini, Anda akan:

- Buat kontributor build yang menghasilkan laporan yang mencantumkan semua elemen dalam model.
- Buat kontributor penyebaran yang mengubah rencana penyebaran sebelum dijalankan.
- Buat kontributor penyebaran yang menghasilkan laporan penyebaran saat Anda menyebarkan proyek SQL.

Anda dapat membuat semua kontributor dalam satu rakitan atau di antara beberapa rakitan, tergantung pada bagaimana Anda ingin kontributor didistribusikan ke tim Anda.
Panduan: Memperluas Database Project Build untuk Menghasilkan Statistik Model

Panduan: Perluas Penyebaran Project Database untuk Mengubah Rencana Penyebaran

Panduan: Memperluas Penyebaran Project Database untuk Menganalisis Rencana Penyebaran

Lihat juga

Tentukan Kondisi Kustom untuk Pengujian Unit SQL