Bagikan melalui


Membuka kemasan file DACPAC

Aplikasi tingkat data (DAC) adalah unit mandiri dari seluruh model database dan portabel dalam artefak yang dikenal sebagai paket DAC, atau .dacpac. Ini adalah praktik yang baik untuk meninjau konten dari .dacpac sebelum menggunakannya di lingkungan produksi, dan untuk memastikan tindakan peningkatan sebelum meningkatkan DAC yang ada. Validasi .dacpac konten sangat penting saat menyebarkan paket yang tidak dikembangkan di organisasi Anda. Artikel ini menjelaskan beberapa cara untuk mengurai model basis data dari .dacpac untuk Windows, macOS, dan Linux.

Peringatan

Kami menyarankan agar Anda tidak menggunakan .dacpac dari sumber yang tidak dikenal atau tidak dapat dipercaya. DAC tersebut dapat berisi kode berbahaya yang mungkin menjalankan kode yang tidak diinginkan atau menyebabkan kesalahan dengan memodifikasi skema. Sebelum Anda menggunakan DAC dari sumber yang tidak diketahui atau tidak tepercaya, gunakan pada instans pengujian terisolasi dari Mesin Database, bongkar DAC dan periksa kode, seperti prosedur yang disimpan atau kode lain yang ditentukan pengguna.

Opsi untuk memeriksa konten .dacpac termasuk:

  • mengimpor .dacpac ke proyek SQL di Visual Studio
  • menggunakan utilitas baris perintah SqlPackage untuk mengekstrak .dacpac
  • mendekompresi file untuk menampilkan konten XML
  • menyebarkan .dacpac ke instans pengujian

Membongkar .dacpac segera setelah diekstrak dari database untuk melihat definisi objek lebih efisien dicapai dengan menggunakan Ekstrak di SqlPackage dengan properti /p:ExtractTarget=File. Hasilnya secara langsung membuat satu .sql file yang berisi definisi objek dari database sumber yang ditentukan.

Mengimpor DACPAC ke proyek SQL di Visual Studio

.dacpac Mengimpor ke proyek SQL di Visual Studio menghasilkan konten .dacpac yang diubah menjadi file .sql dan diatur ke dalam folder. Setelah impor, skrip pasca-penyebaran dan skrip pra-penyebaran dari .dacpac terlihat di penjelajah solusi.

  1. Instal SQL Server Data Tools sebagai bagian dari Visual Studio dan buat proyek SQL baru.

  2. Di Penjelajah Solusi klik kanan proyek kosong dan pilih Impor, lalu dari paket aplikasi lapis data.

Mendekompresi DACPAC untuk menampilkan konten XML

Mendekompresi file .dacpac menghasilkan konten XML mentah yang dapat dilihat di editor teks. Saat mencari komponen tertentu dalam .dacpac, meninjau konten XML bisa menjadi metode cepat untuk mengakses informasi.

  1. Ubah ekstensi file pada file menjadi .dacpac.zip.

  2. Unzip file .zip menggunakan utilitas yang disediakan oleh OS Anda. Untuk membuka zip file dari baris perintah:

    unzip AdventureWorks.dacpac
    
  3. Konten yang dihasilkan meliputi DacMetadata.xml, Origin.xml, dan model.xml.

Menyebarkan DACPAC ke instans pengujian

Menyebarkan .dacpac ke instans pengujian menghasilkan konten yang .dacpac diterbitkan ke database tempat objek dapat dijelajahi dari berbagai alat database yang terhubung.

Nota

Salah satu opsi untuk membuat instans pengujian secara lokal adalah dengan SQL Server di Docker.

Menyebarkan DACPAC menggunakan Azure Data Studio

  1. Pasang ekstensi SQL Server dacpac di Azure Data Studio.

  2. Sambungkan ke instance yang diinginkan. Klik kanan pada simpul server dan pilih penyihir aplikasi tingkat data dari menu.

  3. Pilih opsi terapkan dari wizard dan atur opsi Database Target ke Database Baru.

  4. Setelah penyebaran, navigasikan ke database di server yang tersambung di penjelajah objek untuk menelusuri objek database.

Menyebarkan DACPAC menggunakan SqlPackage

  1. Instal SqlPackage.

  2. Gunakan SqlPackage CLI untuk menerbitkan .dacpac file ke instans yang diinginkan. Misalnya perintah untuk memublikasikan .dacpac ke database, lihatlah Contoh Publikasi SqlPackage.

Alat lain dengan kemampuan penyebaran DACPAC

Di luar Azure Data Studio dan SqlPackage, banyak alat lain dapat digunakan untuk menyebarkan .dacpac ke database. Beberapa contohnya meliputi:

  • SQL Server Management Studio
  • Visual Studio: Perangkat Data SQL Server

Memanggil metode Unpack()

Microsoft.SqlServer.DacFx .NET API menyediakan metode untuk membongkar.dacpac ke folder, yang dapat digunakan untuk membongkar .dacpac ke folder secara terprogram seperti yang terlihat. Contoh aplikasi .NET berikut mengambil dua argumen, jalur ke .dacpac file dan jalur ke folder output, dan hasilnya adalah konten dari .dacpac file XML yang dikonversi ke 3 dan satu file .sql yang berisi semua objek database.

using Microsoft.SqlServer.Dac;

namespace DacUnpack
{
    class Program
    {
        static void Main(string[] args)
        {
            var dacpacPath = args[0];
            var outputPath = args[1];

            if (!Directory.Exists(outputPath))
            {
                Directory.CreateDirectory(outputPath);
            }

            Console.WriteLine("Unpacking {0} to {1}", dacpacPath, outputPath);
            using(DacPackage dacpac = DacPackage.Load(dacpacPath))
            {
                dacpac.Unpack(outputPath);
            }
        }
    }
}