Bagikan melalui


Tutorial: Membuat dan menyebarkan proyek SQL

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance

Siklus pengembangan proyek database SQL memungkinkan pengembangan database diintegrasikan ke dalam alur kerja integrasi berkelanjutan dan penyebaran berkelanjutan (CI/CD) yang akrab sebagai praktik terbaik pengembangan. Meskipun penyebaran proyek database SQL dapat dilakukan secara manual, disarankan untuk menggunakan alur penyebaran untuk mengotomatiskan proses penyebaran sehingga penyebaran yang sedang berlangsung dijalankan berdasarkan pengembangan lokal Anda yang berkelanjutan tanpa upaya tambahan.

Artikel ini menjelaskan cara membuat proyek SQL baru, menambahkan objek ke proyek, dan menyiapkan alur penyebaran berkelanjutan untuk membangun dan menyebarkan proyek dengan tindakan GitHub. Tutorial ini adalah superset dari konten artikel memulai proyek SQL. Sementara tutorial mengimplementasikan alur penyebaran dalam tindakan GitHub, konsep yang sama berlaku untuk Azure DevOps, GitLab, dan lingkungan otomatisasi lainnya.

Di tutorial ini, Anda akan:

  1. Membuat proyek SQL baru
  2. Menambahkan objek ke proyek
  3. Membangun proyek secara lokal
  4. Periksa proyek ke kontrol sumber
  5. Menambahkan langkah build proyek ke alur penyebaran berkelanjutan
  6. .dacpac Menambahkan langkah penyebaran ke alur penyebaran berkelanjutan

Jika Anda telah menyelesaikan langkah-langkah dalam artikel memulai proyek SQL, Anda dapat melompat ke langkah 4. Pada akhir tutorial ini, proyek SQL Anda akan secara otomatis membangun dan menyebarkan perubahan pada database target.

Prasyarat

# install SqlPackage CLI
dotnet tool install -g Microsoft.SqlPackage

# install Microsoft.Build.Sql.Templates
dotnet new install Microsoft.Build.Sql.Templates

Pastikan Anda memiliki item berikut untuk menyelesaikan penyiapan alur di GitHub:

Catatan

Untuk menyelesaikan penyebaran proyek database SQL, Anda memerlukan akses ke instans Azure SQL atau SQL Server. Anda dapat mengembangkan secara lokal secara gratis dengan edisi pengembang SQL Server di Windows atau dalam kontainer.

Langkah 1: Buat proyek baru

Kami memulai proyek kami dengan membuat proyek database SQL baru sebelum menambahkan objek secara manual ke dalamnya. Ada cara lain untuk membuat proyek yang memungkinkan segera mengisi proyek dengan objek dari database yang ada, seperti menggunakan alat perbandingan skema.

Pilih File, Baru, lalu Proyek.

Dalam kotak dialog Proyek Baru, gunakan istilah SQL Server di kotak pencarian. Hasil teratas harus berupa Proyek Database SQL Server.

Cuplikan layar dialog Proyek baru.

Pilih Berikutnya untuk melanjutkan ke langkah berikutnya. Berikan nama proyek, yang tidak perlu cocok dengan nama database. Verifikasi dan ubah lokasi proyek sesuai kebutuhan.

Pilih Buat untuk membuat proyek. Proyek kosong dibuka dan terlihat di Penjelajah Solusi untuk pengeditan.

Pilih File, Baru, lalu Proyek.

Dalam kotak dialog Proyek Baru, gunakan istilah SQL Server di kotak pencarian. Hasil teratas harus SQL Server Database Project, SDK-style (pratinjau).

Cuplikan layar dialog Proyek baru.

Pilih Berikutnya untuk melanjutkan ke langkah berikutnya. Berikan nama proyek, yang tidak perlu cocok dengan nama database. Verifikasi dan ubah lokasi proyek sesuai kebutuhan.

Pilih Buat untuk membuat proyek. Proyek kosong dibuka dan terlihat di Penjelajah Solusi untuk pengeditan.

Dalam tampilan Proyek Database visual Studio Code atau Azure Data Studio, pilih tombol Proyek Baru.

Cuplikan layar Viewlet baru.

Perintah pertama menentukan templat proyek mana yang akan digunakan, terutama berdasarkan apakah platform target adalah SQL Server atau Azure SQL. Jika diminta untuk memilih versi SQL tertentu, pilih versi yang cocok dengan database target tetapi jika versi database target tidak diketahui, pilih versi terbaru karena nilai dapat dimodifikasi nanti.

Masukkan nama proyek dalam input teks yang muncul, yang tidak perlu cocok dengan nama database.

Dalam dialog "Pilih Folder" yang muncul, pilih direktori untuk folder, file, .sqlproj dan konten proyek lainnya untuk berada.

Saat diminta apakah akan membuat proyek gaya SDK (pratinjau), pilih Ya.

Setelah selesai, proyek kosong dibuka dan terlihat dalam tampilan Proyek Database untuk pengeditan.

Dengan templat .NET untuk proyek Microsoft.Build.Sql terinstal, Anda dapat membuat proyek database SQL baru dari baris perintah. Opsi -n menentukan nama proyek, dan -tp opsi menentukan platform target proyek.

Gunakan opsi untuk melihat semua opsi yang -h tersedia.

# install Microsoft.Build.Sql.Templates
dotnet new sqlproject -n MyDatabaseProject

Langkah 2: Menambahkan objek ke proyek

Di Penjelajah Solusi, klik kanan simpul proyek dan pilih Tambahkan, lalu Tabel. Dialog Tambahkan Item Baru muncul, di mana Anda bisa menentukan nama tabel. Pilih Tambahkan untuk membuat tabel di proyek SQL.

Tabel dibuka di perancang tabel Visual Studio dengan definisi tabel templat, di mana Anda bisa menambahkan kolom, indeks, dan properti tabel lainnya. Simpan file saat Anda selesai melakukan pengeditan awal.

Objek database lainnya dapat ditambahkan melalui dialog Tambahkan Item Baru, seperti tampilan, prosedur tersimpan, dan fungsi. Akses dialog dengan mengklik kanan simpul proyek di Penjelajah Solusi dan memilih Tambahkan, lalu jenis objek yang diinginkan. File dalam proyek dapat diatur ke dalam folder melalui opsi Folder Baru di bawah Tambahkan.

Di Penjelajah Solusi, klik kanan simpul proyek dan pilih Tambahkan, lalu Item Baru. Dialog Tambahkan Item Baru muncul, pilih Perlihatkan Semua Templat lalu Tabel. Tentukan nama tabel sebagai nama file dan pilih Tambahkan untuk membuat tabel di proyek SQL.

Tabel dibuka di editor kueri Visual Studio dengan definisi tabel templat, tempat Anda bisa menambahkan kolom, indeks, dan properti tabel lainnya. Simpan file saat Anda selesai melakukan pengeditan awal.

Objek database lainnya dapat ditambahkan melalui dialog Tambahkan Item Baru, seperti tampilan, prosedur tersimpan, dan fungsi. Akses dialog dengan mengklik kanan simpul proyek di Penjelajah Solusi dan memilih Tambahkan, lalu jenis objek yang diinginkan setelah Tampilkan Semua Templat. File dalam proyek dapat diatur ke dalam folder melalui opsi Folder Baru di bawah Tambahkan.

Dalam tampilan Proyek Database visual Studio Code atau Azure Data Studio, klik kanan simpul proyek dan pilih Tambahkan Tabel. Dalam dialog yang muncul, tentukan nama tabel.

Tabel dibuka di editor teks dengan definisi tabel templat, tempat Anda dapat menambahkan kolom, indeks, dan properti tabel lainnya. Simpan file saat Anda selesai melakukan pengeditan awal.

Lebih banyak objek database dapat ditambahkan melalui menu konteks pada simpul proyek, seperti tampilan, prosedur tersimpan, dan fungsi. Akses dialog dengan mengklik kanan simpul proyek dalam tampilan Proyek Database Visual Studio Code atau Azure Data Studio, lalu jenis objek yang diinginkan. File dalam proyek dapat diatur ke dalam folder melalui opsi Folder Baru di bawah Tambahkan.

File dapat ditambahkan ke proyek dengan membuatnya di direktori proyek atau folder berlapis. Ekstensi file harus dan .sql organisasi berdasarkan jenis objek atau skema dan jenis objek disarankan.

Templat dasar untuk tabel dapat digunakan sebagai titik awal untuk membuat objek tabel baru dalam proyek:

CREATE TABLE [dbo].[Table1]
(
  [Id] INT NOT NULL PRIMARY KEY
)

Langkah 3: Bangun proyek

Proses build memvalidasi hubungan antara objek dan sintaks terhadap platform target yang ditentukan dalam file proyek. Output artefak dari proses build adalah .dacpac file, yang dapat digunakan untuk menyebarkan proyek ke database target dan berisi model skema database yang dikompilasi.

Di Penjelajah Solusi, klik kanan simpul proyek dan pilih Bangun.

Jendela output secara otomatis terbuka untuk menampilkan proses build. Jika ada kesalahan atau peringatan, kesalahan akan ditampilkan di jendela output. Pada build yang berhasil, artefak build (.dacpac file) dibuat lokasinya disertakan dalam output build (defaultnya adalah bin\Debug\projectname.dacpac).

Di Penjelajah Solusi, klik kanan simpul proyek dan pilih Bangun.

Jendela output secara otomatis terbuka untuk menampilkan proses build. Jika ada kesalahan atau peringatan, kesalahan akan ditampilkan di jendela output. Pada build yang berhasil, artefak build (.dacpac file) dibuat lokasinya disertakan dalam output build (defaultnya adalah bin\Debug\projectname.dacpac).

Dalam tampilan Proyek Database visual Studio Code atau Azure Data Studio, klik kanan simpul proyek dan pilih Bangun.

Jendela output secara otomatis terbuka untuk menampilkan proses build. Jika ada kesalahan atau peringatan, kesalahan akan ditampilkan di jendela output. Pada build yang berhasil, artefak build (.dacpac file) dibuat lokasinya disertakan dalam output build (defaultnya adalah bin/Debug/projectname.dacpac).

Proyek database SQL dapat dibangun dari baris perintah menggunakan dotnet build perintah .

dotnet build

# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj

Output build mencakup kesalahan atau peringatan dan file dan nomor baris tertentu tempat terjadinya. Pada build yang berhasil, artefak build (.dacpac file) dibuat lokasinya disertakan dalam output build (defaultnya adalah bin/Debug/projectname.dacpac).

Langkah 4: Periksa proyek ke kontrol sumber

Kami akan menginisialisasi proyek kami sebagai repositori Git dan menerapkan file proyek ke kontrol sumber. Langkah ini diperlukan untuk memungkinkan proyek dibagikan dengan orang lain dan digunakan dalam alur penyebaran berkelanjutan.

  1. Dari menu Git di Visual Studio, pilih Buat Repositori Git.

    Cuplikan layar opsi Buat Repositori Git dari menu Git di Visual Studio.

  2. Dalam dialog Buat repositori Git, di bawah bagian Dorong ke jarak jauh baru, pilih GitHub.

  3. Di bagian Buat repositori GitHub baru dari dialog Buat repositori Git, masukkan nama repositori yang ingin Anda buat. (Jika Anda belum masuk ke akun GitHub, Anda juga dapat melakukannya dari layar ini.)

    Cuplikan layar dialog Buat Repositori Git di Visual Studio dengan pilihan GitHub disorot.

    Di bawah Inisialisasi Repositori Git lokal, Anda harus menggunakan opsi templat .gitignore untuk menentukan file yang sengaja tidak terlarut yang ingin Diabaikan Git. Untuk mempelajari selengkapnya tentang .gitignore, lihat Mengabaikan file. Dan untuk mempelajari selengkapnya tentang lisensi, lihat Lisensi repositori.

  4. Setelah masuk dan memasukkan info repositori, pilih tombol Buat dan Dorong untuk membuat repositori dan menambahkan aplikasi Anda.

Di Penjelajah Solusi, klik kanan simpul proyek dan pilih Terbitkan....

Dialog terbitkan terbuka, tempat Anda membuat koneksi database target. Jika Anda tidak memiliki instans SQL yang sudah ada untuk penyebaran, LocalDB ((localdb)\MSSQLLocalDB) diinstal dengan Visual Studio dan dapat digunakan untuk pengujian dan pengembangan.

Tentukan nama database dan pilih Terbitkan untuk menyebarkan proyek ke database target atau Hasilkan Skrip untuk menghasilkan skrip yang akan ditinjau sebelum dieksekusi.

Anda dapat menginisialisasi dan repositori lokal dan menerbitkannya langsung ke GitHub dari VISUAL Code atau Azure Data Studio. Tindakan ini membuat repositori baru di akun GitHub Anda dan mendorong perubahan kode lokal Anda ke repositori jarak jauh dalam satu langkah.

Gunakan tombol Terbitkan ke GitHub di tampilan Kontrol Sumber di Visual Studio Code atau Azure Data Studio. Anda kemudian diminta untuk menentukan nama dan deskripsi untuk repositori, dan serta apakah akan menjadikannya publik atau privat.

Cuplikan layar dialog Buat Repositori Git di Visual Studio dengan pilihan GitHub disorot.

Atau, Anda dapat menginisialisasi repositori lokal dan mendorongnya ke GitHub mengikuti langkah-langkah yang disediakan saat Anda membuat repositori kosong di GitHub.

Inisialisasi repositori Git baru di direktori proyek dan terapkan file proyek ke kontrol sumber.

git init
git add .
git commit -m "Initial commit"

Buat repositori baru di GitHub dan dorong repositori lokal ke repositori jarak jauh.

git remote add origin <repository-url>
git push -u origin main

Langkah 5: Menambahkan langkah build proyek ke alur penyebaran berkelanjutan

Proyek SQL didukung oleh pustaka .NET dan akibatnya proyek dibangun dengan dotnet build perintah . Perintah ini adalah pokok bahkan alur integrasi berkelanjutan dan penyebaran berkelanjutan (CI/CD) yang paling mendasar. Langkah build dapat ditambahkan ke alur penyebaran berkelanjutan yang kami buat dalam tindakan GitHub.

  1. Di akar repositori, buat direktori baru bernama .github/workflows. Direktori ini akan berisi file alur kerja yang menentukan alur penyebaran berkelanjutan.

  2. .github/workflows Di direktori, buat file baru bernama sqlproj-sample.yml.

  3. Tambahkan konten berikut ke sqlproj-sample.yml file, edit nama proyek agar sesuai dengan nama dan jalur proyek Anda:

    name: sqlproj-sample
    
    on:
      push:
        branches: [ "main" ]
    
    jobs:
      build:
        runs-on: ubuntu-latest
    
        steps:
        - uses: actions/checkout@v4
    
        - name: Setup .NET
          uses: actions/setup-dotnet@v4
          with:
            dotnet-version: 8.0.x
    
        - name: Build
          run: dotnet build MyDatabaseProject.sqlproj
    
  4. Terapkan file alur kerja ke repositori dan dorong perubahan ke repositori jarak jauh.

  5. Di GitHub.com, buka halaman utama repositori. Di bawah nama repositori Anda, klik Tindakan. Di bar samping kiri, pilih alur kerja yang baru saja Anda buat. Eksekusi alur kerja terbaru akan muncul dalam daftar alur kerja yang dijalankan dari saat Anda mendorong file alur kerja ke repositori.

Informasi selengkapnya tentang dasar-dasar pembuatan alur kerja tindakan GitHub pertama Anda tersedia di mulai cepat GitHub Actions.

Langkah 6: Menambahkan .dacpac langkah penyebaran ke alur penyebaran berkelanjutan

Model yang dikompilasi dari skema database dalam .dacpac file dapat disebarkan ke database target menggunakan SqlPackage alat baris perintah atau alat penyebaran lainnya. Proses penyebaran menentukan langkah-langkah yang diperlukan untuk memperbarui database target agar sesuai dengan skema yang ditentukan dalam .dacpac, membuat atau mengubah objek sesuai kebutuhan berdasarkan objek yang sudah ada dalam database. Misalnya, untuk menyebarkan .dacpac file ke database target berdasarkan string koneksi:

sqlpackage /Action:Publish /SourceFile:bin/Debug/MyDatabaseProject.dacpac /TargetConnectionString:{yourconnectionstring}

Cuplikan layar sumber DacFx dan proses perbandingan target sebelum penyebaran.

Proses penyebaran idempotensi, yang berarti dapat dijalankan beberapa kali tanpa menyebabkan masalah. Alur yang kami buat akan membangun dan menyebarkan proyek SQL kami setiap kali perubahan diperiksa ke main cabang repositori kami. Alih-alih menjalankan SqlPackage perintah langsung dalam alur penyebaran, kita dapat menggunakan tugas penyebaran yang mengabstraksi perintah dan menyediakan fitur tambahan seperti pengelogan, penanganan kesalahan, dan konfigurasi tugas. Tugas penyebaran GitHub sql-action dapat ditambahkan ke alur penyebaran berkelanjutan dalam tindakan GitHub.

Catatan

Menjalankan penyebaran dari lingkungan otomatisasi memerlukan konfigurasi database dan lingkungan sehingga penyebaran dapat mencapai database dan mengautentikasi. Di Azure SQL Database atau SQL Server dalam VM, ini mungkin memerlukan penyiapan aturan firewall untuk memungkinkan lingkungan otomatisasi tersambung ke database serta menyediakan string koneksi dengan kredensial yang diperlukan. Panduan disediakan dalam dokumentasi gitHub sql-action .

  1. sqlproj-sample.yml Buka file di .github/workflows direktori.

  2. Tambahkan langkah berikut ke sqlproj-sample.yml file setelah langkah build:

    - name: Deploy
      uses: azure/sql-action@v2
      with:
        connection-string: ${{ secrets.SQL_CONNECTION_STRING }}
        action: 'publish'
        path: 'bin/Debug/MyDatabaseProject.dacpac'
    
  3. Sebelum menerapkan perubahan, tambahkan rahasia ke repositori yang berisi string koneksi ke database target. Di repositori di GitHub.com, navigasikan ke Pengaturan, lalu Rahasia. Pilih Rahasia repositori baru dan tambahkan rahasia bernama SQL_CONNECTION_STRING dengan nilai string koneksi ke database target.

    Cuplikan layar pengaturan repositori GitHub dengan tombol Rahasia repositori baru disorot.

  4. Terapkan perubahan dari sqlproj-sample.yml ke repositori dan dorong perubahan ke repositori jarak jauh.

  5. Navigasikan kembali ke riwayat alur kerja pada GitHub.com dan pilih eksekusi alur kerja terbaru. Langkah penyebaran harus terlihat dalam daftar langkah-langkah untuk eksekusi alur kerja dan alur kerja mengembalikan kode keberhasilan.

  6. Verifikasi penyebaran dengan menyambungkan ke database target dan memeriksa apakah objek dalam proyek ada dalam database.

Penyebaran GitHub dapat diamankan lebih lanjut dengan membuat hubungan lingkungan dalam alur kerja dan memerlukan persetujuan sebelum penyebaran dijalankan. Informasi selengkapnya tentang perlindungan lingkungan dan melindungi rahasia tersedia dalam dokumentasi GitHub Actions.

Dapatkan bantuan