Bagikan melalui


SqlPackage untuk database SQL di Microsoft Fabric

Berlaku untuk:Database SQL di Microsoft Fabric

Dalam tutorial ini, Anda mempelajari cara bekerja dengan SqlPackage di database SQL Anda di Fabric.

SqlPackage adalah CLI yang menyediakan portabilitas database dan penyebaran database.

  • Portabilitas (impor/ekspor) database yang dikelola di Azure atau di Fabric memastikan data Anda portabel ke platform lain jika Anda ingin bermigrasi nanti. - Portabilitas mencakup pergerakan ke dan dari SQL Server, Azure SQL Database, Azure SQL Managed Instance, dan database SQL di Fabric melalui salinan database mandiri (.bacpac atau .dacpac file).

SqlPackage juga dapat mengaktifkan penyebaran database yang mudah dari perubahan bertahap pada objek database (kolom baru dalam tabel, perubahan pada prosedur tersimpan yang ada, dll.).

  • SqlPackage dapat mengekstrak file yang .dacpac berisi definisi objek dalam database, dan menerbitkan .dacpac file untuk menerapkan status objek tersebut ke database baru atau yang sudah ada.
  • Operasi penerbitan juga terintegrasi dengan proyek SQL, yang memungkinkan siklus pengembangan offline dan lebih dinamis untuk database SQL.

Prasyarat

Siapkan

SqlPackage tersedia untuk Windows, macOS, dan Linux sebagai alat dotnet. Anda dapat menginstalnya menggunakan perintah berikut:

dotnet tool install --global Microsoft.SqlPackage

Sebagai alat dotnet global, SqlPackage tersedia di terminal Anda seperti sqlpackage dari folder apa pun.

Mengimpor database dengan SqlPackage

.bacpac adalah salinan portabel database, berguna untuk beberapa skenario migrasi dan pengujian. Anda dapat mengimpornya.bacpac ke database SQL kosong dengan impor SqlPackage.

Catatan

.bacpac bukanlah cadangan atau pengganti kemampuan pencadangan/pemulihan. Untuk informasi selengkapnya tentang pencadangan untuk database SQL di Fabric, lihat Pencadangan otomatis dalam database SQL di Microsoft Fabric dan Pemulihan dari cadangan dalam database SQL di Microsoft Fabric.

  1. Jika menggunakan .bacpac dari lingkungan Azure atau SQL Server, Anda mungkin perlu mengubah database sumber untuk memenuhi database SQL di area permukaan Fabric T-SQL. Lihat ekstraksi dan publikasi portabilitas untuk metode alternatif yang memungkinkan properti SqlPackage mengabaikan beberapa objek yang tidak didukung.

  2. Buat database SQL baru Anda di Fabric seperti biasa melalui antarmuka Fabric.

  3. Salin string koneksi dari pengaturan.

    Cuplikan layar dari portal Fabric memperlihatkan halaman String koneksi database SQL.

  4. Gunakan perintah impor dari terminal di folder sqlpackage. Berikan pemilik <servername> Anda dan <database_name>.

    sqlpackage /action:import /sourcefile:"C:\DatabaseName.bacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"
    
    • Ganti string koneksi Anda dari dialog pengaturan database SQL.
    • sourcefile Ganti nilai dengan .bacpac nama (DatabaseName) dan location pada komputer lokal Anda.
  5. Ikuti impor dengan tugas Salin di Data Factory di Microsoft Fabric. Untuk memulai, lihat Panduan Cepat: Membuat tugas penyalinan.

Mengekspor database dengan SqlPackage

Mengekspor adalah .bacpac operasi terbalik, di mana Anda targetfile adalah dan .bacpac Anda sourceconnectionstring dapat ditemukan dalam dialog pengaturan database SQL, seperti pada contoh sebelumnya. Berikan pemilik <servername> Anda dan <database_name>. Contohnya:

sqlpackage /action:export /targetfile:"C:\DatabaseName.bacpac" /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"

Untuk informasi selengkapnya tentang ekspor, lihat Ekspor SqlPackage.

Mengekstrak dan menerbitkan

Diagram bagaimana proyek database SQL dapat memindahkan perubahan skema.

.dacpac adalah file model skema database, yang berisi definisi untuk tabel, prosedur tersimpan, dan objek lain dalam database sumber. File ini dapat dibuat dari database yang ada dengan SqlPackage atau dari proyek database SQL.

SqlPackage mampu menyebarkan .dacpac ke database baru (kosong) atau memperbarui database yang ada secara bertahap agar sesuai dengan status yang diinginkan .dacpac .

  • Ekstrak membuat .dacpac file atau sql dari database yang sudah ada.
  • Menerbitkan menyebarkan .dacpac ke database.

Sintaks SqlPackage menerbitkan dan ekstrak mirip dengan perintah impor/ekspor.

Peringatan

Sebaiknya gunakan SqlPackage untuk menyebarkan proyek SQL atau .dacpac ke database SQL di Fabric. Menyebarkan .dacpac dari Visual Studio mungkin tidak berhasil.

Untuk menyebarkan .dacpac yang dibuat dari Azure SQL Database, SQL Server, atau proyek SQL yang menargetkan platform selain database SQL di Fabric, tambahkan properti /p:AllowIncompatiblePlatform=true ke perintah terbitkan SqlPackage.

Mengekstrak dan menerbitkan portabilitas

Meskipun perintah impor/ekspor SqlPackage difokuskan pada portabilitas data dengan .bacpac format , perintah ekstrak dan terbitkan mampu portabilitas data dengan .dacpac format . Properti ekstraksi dan penerbitan dapat digunakan untuk mengontrol perilaku operasi ekstraksi dan penerbitan serta memberikan lebih banyak fleksibilitas untuk konversi lintas platform.

Untuk mengekstrak.dacpac sekaligus menyertakan data, gunakan properti /p:ExtractAllTableData=true. Operasi ekstrak membuat .dacpac yang berisi skema dan data dari database sumber. Properti /p:ExtractReferencedServerScopedElements=false mengecualikan elemen berbasis server, yang tidak didukung dalam database SQL di Fabric. Perintah berikut mengekstrak .dacpac dengan data dari database SQL yang ada di Fabric:

sqlpackage /action:extract /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /targetfile:"C:\extracted.dacpac" /p:ExtractAllTableData=true  /p:ExtractReferencedServerScopedElements=false

Untuk menerbitkan.dacpac yang diekstrak dari data, tidak diperlukan properti tambahan. Namun, beberapa properti dapat digunakan untuk mengontrol perilaku operasi penerbitan:

  • /p:AllowIncompatiblePlatform=true memungkinkan penyebaran .dacpac yang diekstrak dari platform yang berbeda (misalnya, Azure SQL Database, SQL Server).
  • /p:ExcludeObjectTypes=Logins;Users mengecualikan jenis objek yang mungkin mengalami masalah kompatibilitas saat menerbitkan ke database SQL di Fabric. Untuk daftar lengkap jenis objek yang dapat dikecualikan, lihat SqlPackage publish.

Demikian pula dengan perintah impor SqlPackage, sebelum menerbitkan database .dacpac ke SQL di Fabric, Anda perlu membuat database di Fabric. Anda dapat membuat database melalui portal Fabric atau antarmuka Fabric lainnya. Perintah berikut menerbitkan yang diekstrak .dacpac ke database SQL kosong di Fabric:

sqlpackage /action:publish /sourcefile:"C:\extracted.dacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /p:AllowIncompatiblePlatform=true /p:ExcludeObjectTypes=Logins;Users