Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Database SQL di Microsoft Fabric
Menyimpan skema database di Git memberikan beberapa manfaat, termasuk kontrol versi, kolaborasi, dan kemampuan untuk melacak perubahan dari waktu ke waktu. Pendekatan ini sangat berguna untuk pengembangan code-first di mana Anda menentukan skema database melalui kode dan menerapkan perubahan langsung ke lingkungan pengembangan dengan menggunakan ORM atau agen pengodean seperti GitHub Copilot.
Dalam tutorial ini, Anda mempelajari cara menyimpan skema database di Git dan mengelolanya sebagai bagian dari alur kerja pengembangan Anda.
- Membuat proyek SQL baru dari database yang sudah ada
- Melakukan commit dan push kode database ke repositori remote Git
- Menerapkan perubahan dari database ke kode yang ada
- Tarik perubahan dari repositori jarak jauh Git dan terapkan ke database lokal (opsional)
Setelah selesai, Anda siap untuk melacak database Anda dalam kontrol sumber dan berkolaborasi dengan tim Anda pada perubahan database melalui repositori Git.
Note
Untuk menyelesaikan tutorial, Anda memerlukan akses ke database SQL. Anda dapat mengembangkan secara lokal secara gratis dengan menggunakan SQL Server edisi pengembang pada Windows atau dalam kontainer.
Prasyarat
Warning
Tutorial ini tidak tersedia untuk proyek gaya SDK (pratinjau) di Visual Studio 2022. Gunakan SQL Server Management Studio (SSMS) atau Visual Studio Code sebagai gantinya.
# install SqlPackage CLI
dotnet tool install -g Microsoft.SqlPackage
# install Microsoft.Build.Sql.Templates
dotnet new install Microsoft.Build.Sql.Templates
Langkah 1: Buat proyek SQL baru dari database yang sudah ada
Untuk mewakili database Anda dalam kontrol sumber, gunakan format proyek database SQL . Proyek ini mencakup .sql file untuk setiap objek database dan .sqlproj dengan pengaturan database. Saat Anda melihat proyek di penjelajah file dan kontrol sumber, struktur proyek SQL mencerminkan penjelajahan database di penjelajah objek.
Dari SQL Server Object Explorer di Visual Studio, klik kanan database yang ingin Anda buat project dan pilih Buat Project Baru... .
Dalam dialog Buat Project Baru, masukkan nama project. Nama proyek tidak perlu cocok dengan nama database. Verifikasi dan ubah lokasi proyek sesuai kebutuhan. Pengaturan impor default mengimpor objek ke dalam folder menurut skema, lalu jenis objek. Anda dapat mengubah pengaturan impor untuk mengubah struktur folder atau menyertakan izin dalam objek yang sedang diimpor. Mulai proses impor.
Dialog Impor Database menampilkan kemajuan impor sebagai pesan. Setelah impor selesai, Anda dapat melihat objek yang diimpor di Penjelajah Solusi. Proses ini menyimpan log dalam file di direktori proyek di bawah Import Schema Logs. Pilih Selesai.
Warning
Tutorial ini tidak tersedia untuk proyek gaya SDK (pratinjau) di Visual Studio 2022. Gunakan SQL Server Management Studio (SSMS) atau Visual Studio Code sebagai gantinya.
Dalam tampilan penjelajah objek database di Visual Studio Code, pilih database tempat Anda ingin membuat proyek. Klik kanan database dan pilih Buat Proyek dari Database.
Dalam Visual Studio Code, dialog Buat proyek dari database memerlukan nama dan lokasi proyek. Pengaturan impor default mengimpor objek ke dalam folder menurut skema, lalu jenis objek. Anda dapat memilih struktur folder lain atau memilih untuk menyertakan izin dalam objek yang sedang diimpor sebelum memilih Buat.
Buka tampilan Proyek Database untuk melihat proyek baru dan definisi objek yang diimpor.
Dari Object Explorer di SQL Server Management Studio, klik kanan database yang ingin Anda buat project dan pilih Buat Project dari Database... di bawah menu Tugas.
Dalam dialog Buat Project SQL dari Database, verifikasi database yang dipilih dan ubah nama dan lokasi project sesuai kebutuhan. Proyek baru dibuat dengan objek dari database yang dipilih dan disusun dalam folder menurut skema, lalu jenis objek.
File solusi secara otomatis dibuat di folder di atas folder proyek, dan terbuka di Penjelajah Solusi setelah pembuatan. Jika Anda ingin menambahkan proyek baru Anda ke solusi yang sudah ada, pilih Tambahkan ke solusi dan telusuri ke file solusi. Pilih Buat untuk membuat proyek.
Gunakan SqlPackage CLI untuk mengekstrak skema database yang ada ke proyek SQL. Perintah SqlPackage berikut mengekstrak skema database ke proyek SQL lengkap. File .sql diatur oleh skema berlapis dan folder jenis objek dan .sqlproj file dibuat untuk mengelola proyek dengan kumpulan properti yang cocok dengan opsi database.
sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SqlProject
Langkah 2: Commit dan push kode database ke repositori remote Git
Setelah membuat proyek SQL, mulai garis waktu Git untuk database di repositori Git lokal.
Dengan proyek SQL terbuka di Visual Studio, buat repositori Git lokal dan dorong ke jarak jauh.
Pilih Git>Create Git Repository dari bilah menu.
Dalam dialog Buat Repositori Git, di bawah bagian Dorong ke jarak jauh baru, pilih GitHub atau Azure DevOps. Jika Anda memilih untuk push ke GitHub, masuk ke akun GitHub Anda saat diminta. Jika Anda memilih Azure DevOps, masuk ke akun Azure DevOps Anda dan pilih atau buat proyek.
Masukkan nama dan deskripsi repositori. Pastikan templat .gitignore diatur ke VisualStudio dan pilih Buat dan Push.
Visual Studio membuat repositori Git lokal, melakukan komit awal dengan file proyek SQL Anda, dan mendorongnya ke repositori remote.
Untuk memverifikasi bahwa kode berhasil didorong, buka browser dan navigasikan ke repositori Anda di GitHub (https://github.com) atau Azure DevOps (https://dev.azure.com). Anda akan melihat file proyek SQL, termasuk .sqlproj file dan .sql definisi objek.
Untuk informasi selengkapnya, lihat Tentang Git di Visual Studio.
Warning
Tutorial ini tidak tersedia untuk proyek gaya SDK (pratinjau) di Visual Studio 2022. Gunakan SQL Server Management Studio (SSMS) atau Visual Studio Code sebagai gantinya.
Dengan folder proyek SQL terbuka di Visual Studio Code, inisialisasi repositori Git lokal dan dorong ke jarak jauh.
Buka tampilan Kontrol Sumber dengan memilih ikon Kontrol Sumber di Bilah Aktivitas, atau tekan
Ctrl+Shift+G.Pilih Inisialisasi Repositori untuk membuat repositori Git baru di folder saat ini.
Semua file proyek muncul sebagai perubahan yang tidak terlacak. Pilih ikon + di samping Perubahan untuk menambahkan semua berkas ke staging area.
Masukkan pesan penerapan seperti
Initial commit of SQL projectdalam kotak input pesan dan pilih tombol Terapkan (ikon tanda centang).Pilih Terbitkan Cabang dalam tampilan Kontrol Sumber untuk mendorong repositori lokal Anda ke jarak jauh. Pilih apakah akan menerbitkan ke GitHub atau Azure DevOps dan mengikuti perintah masuk. Pilih visibilitas repositori (publik atau privat) dan konfirmasi.
Untuk memverifikasi bahwa kode berhasil didorong, buka browser dan navigasikan ke repositori Anda di GitHub (https://github.com) atau Azure DevOps (https://dev.azure.com). Anda akan melihat file proyek SQL, termasuk .sqlproj file dan .sql definisi objek.
Untuk informasi selengkapnya, lihat Kontrol Sumber di Visual Studio Code.
Dengan proyek SQL terbuka di SQL Server Management Studio, buat repositori Git lokal dan dorong ke jarak jauh.
Pilih Git>Create Git Repository dari bilah menu.
Dalam dialog Buat Repositori Git, di bawah bagian Dorong ke jarak jauh baru, pilih GitHub atau Azure DevOps. Jika Anda memilih untuk push ke GitHub, masuk ke akun GitHub Anda saat diminta. Jika Anda memilih Azure DevOps, masuk ke akun Azure DevOps Anda dan pilih atau buat proyek.
Masukkan nama dan deskripsi repositori. Pastikan templat .gitignore diatur ke VisualStudio dan pilih Buat dan Push.
SSMS membuat repositori Git lokal, membuat commit awal dengan file proyek SQL Anda, dan mendorongnya ke repositori remote.
Untuk memverifikasi bahwa kode berhasil didorong, buka browser dan navigasikan ke repositori Anda di GitHub (https://github.com) atau Azure DevOps (https://dev.azure.com). Anda akan melihat file proyek SQL, termasuk .sqlproj file dan .sql definisi objek.
Untuk informasi selengkapnya, lihat Tentang Git di Visual Studio.
Dari direktori proyek SQL, inisialisasi repositori Git lokal, komitkan semua file, lalu push ke repositori remote.
Inisialisasi repositori Git baru, tambahkan
.gitignorefile, dan buat penerapan awal:cd MyDatabaseProject git init dotnet new gitignore git add . git commit -m "Initial commit of SQL project"Buat repositori jarak jauh baru di GitHub atau Azure DevOps:
-
GitHub: Buka https://github.com/new dan buat repositori baru. Jangan menginisialisasinya dengan README,
.gitignore, atau lisensi. - Azure DevOps: Buka proyek Azure DevOps Anda, pilih Repositori, dan buat repositori baru. Hapus centang Tambahkan README.
-
GitHub: Buka https://github.com/new dan buat repositori baru. Jangan menginisialisasinya dengan README,
Tambahkan remote dan lakukan push commit awal Anda:
git remote add origin <your-repository-url> git push -u origin mainGanti
<your-repository-url>dengan URL yang disediakan oleh GitHub atau Azure DevOps saat Anda membuat repositori.
Untuk memverifikasi bahwa kode berhasil di-push, buka browser dan kunjungi repositori Anda. Anda akan melihat file proyek SQL, termasuk .sqlproj file dan .sql definisi objek.
Langkah 3: Terapkan perubahan dari database ke kode yang ada
Ketika skema database berubah di luar proyek SQL (misalnya, melalui modifikasi langsung ke database, migrasi ORM, atau tindakan agenik), Anda dapat memperbarui proyek untuk mencerminkan perubahan tersebut.
Gunakan perbandingan skema untuk memperbarui proyek SQL dari database.
Di SQL Server Object Explorer, klik kanan database dan pilih Perbandingan Skema.
Di jendela Bandingkan Skema , database diatur sebagai sumbernya. Pilih daftar dropdown Pilih Target dan pilih Pilih Target.
Dalam dialog Pilih Skema Target, pilih Project dan pilih proyek database SQL Anda. Pilih OK.
Pilih Bandingkan untuk menjalankan perbandingan. Hasilnya menampilkan perbedaan antara database (sumber) dan proyek (target).
Tinjau perbedaannya. Hapus centang perubahan apa pun yang tidak ingin Anda terapkan ke proyek.
Pilih Perbarui untuk menerapkan perubahan yang dipilih ke proyek SQL.
File proyek diperbarui agar sesuai dengan skema database. Tinjau perubahan di jendela Perubahan Git , masukkan pesan penerapan, dan pilih Terapkan Semua. Pilih Dorong untuk mendorong perubahan ke repositori jarak jauh.
Warning
Tutorial ini tidak tersedia untuk proyek gaya SDK (pratinjau) di Visual Studio 2022. Gunakan SQL Server Management Studio (SSMS) atau Visual Studio Code sebagai gantinya.
Gunakan perintah Perbarui Project dari Database untuk memperbarui project SQL dari database.
Di penjelajah objek database, klik kanan database dan pilih SQL Database Projects>Update Project dari Database.
Pilih proyek database SQL untuk memperbarui dan mengonfirmasi.
Proses perbandingan dijalankan dan menerapkan perubahan dari basis data ke proyek. File yang diperbarui
.sqlmuncul dalam tampilan Kontrol Sumber sebagai file yang dimodifikasi.
Tinjau perubahan dalam tampilan Kontrol Sumber , tahapkan file yang dimodifikasi, masukkan pesan penerapan, dan pilih Terapkan. Pilih Sinkronkan Perubahan untuk mendorong penerapan ke repositori jarak jauh.
Gunakan perbandingan skema untuk memperbarui proyek SQL dari database.
Di Object Explorer, klik kanan database dan pilih Tugas>Bandingkan Skema (pratinjau).
Di jendela Bandingkan Skema , database diatur sebagai sumbernya. Pilih tombol elipsis target dan pilih proyek database SQL Anda sebagai target.
Pilih Bandingkan untuk menjalankan perbandingan. Hasilnya menampilkan perbedaan antara database (sumber) dan proyek (target).
Tinjau perbedaannya. Hapus centang perubahan apa pun yang tidak ingin Anda terapkan ke proyek.
Pilih Terapkan untuk menerapkan perubahan yang dipilih ke proyek SQL.
File proyek diperbarui agar sesuai dengan skema database. Tinjau perubahan di jendela Perubahan Git , masukkan pesan penerapan, dan pilih Terapkan Semua. Pilih Dorong untuk mendorong perubahan ke repositori jarak jauh.
Gunakan SqlPackage untuk meregenerasi proyek SQL dari database, mengganti file proyek yang ada dengan skema database saat ini. Meskipun alat proyek SQL lainnya menyediakan antarmuka grafis, SqlPackage menawarkan pendekatan baris perintah untuk otomatisasi yang tidak memberikan kesempatan untuk meninjau perubahan file sebelum menerapkannya.
Hapus file objek SQL yang ada dan regenerasi proyek:
rm -rf MyDatabaseProject sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SqlProjectTinjau perubahan dengan Git dan terapkan:
cd MyDatabaseProject dotnet new gitignore git add . git status git commit -m "Update project from database changes" git push
Langkah 4: (opsional) Tarik perubahan dari repositori jarak jauh Git dan terapkan ke database lokal
Ketika anggota tim lain mendorong perubahan skema database ke repositori jarak jauh, Anda dapat menarik perubahan tersebut dan menyebarkannya ke database pengembangan lokal Anda.
Pilih Git>Pull dari bilah menu untuk menarik perubahan terbaru dari repositori jarak jauh.
Di Penjelajah Solusi, klik kanan simpul proyek database SQL dan pilih Perbandingan Skema.
Di jendela Bandingkan Skema, proyek ditetapkan sebagai sumber. Pilih daftar dropdown Pilih Target dan pilih Pilih Target.
Dalam dialog Pilih Skema Target , pilih Database dan pilih koneksi database pengembangan lokal Anda. Pilih OK.
Pilih Bandingkan untuk menjalankan perbandingan. Hasilnya menampilkan perbedaan antara proyek (sumber) dan database (target).
Tinjau perbedaan untuk memverifikasi perubahan yang diharapkan.
Pilih Perbarui untuk menerapkan perubahan ke database.
Warning
Tutorial ini tidak tersedia untuk proyek gaya SDK (pratinjau) di Visual Studio 2022. Gunakan SQL Server Management Studio (SSMS) atau Visual Studio Code sebagai gantinya.
Buka tampilan Kontrol Sumber dan pilih Tarik dari menu ... (atau gunakan tombol sinkronisasi di Bilah Status) untuk menarik perubahan terbaru dari repositori jarak jauh.
Dalam tampilan Proyek Database , klik kanan proyek database SQL dan pilih Perbandingan Skema.
Dalam jendela Bandingkan Skema, proyek ditetapkan sebagai sumber. Pilih tombol elipsis target dan pilih koneksi database pengembangan lokal Anda sebagai target.
Pilih Bandingkan untuk menjalankan perbandingan. Hasilnya menampilkan perbedaan antara proyek (sumber) dan database (target).
Tinjau perbedaan untuk memverifikasi perubahan yang diharapkan.
Pilih Terapkan untuk menerapkan perubahan ke database.
Buka terminal dan jalankan
git pulldi direktori proyek untuk menarik perubahan terbaru dari repositori jarak jauh.Di Penjelajah Solusi, klik kanan simpul proyek database SQL dan pilih Perbandingan Skema (pratinjau).
Di jendela Perbandingan Skema, proyek diatur sebagai sumber. Pilih target dan pilih koneksi database pengembangan lokal Anda.
Pilih Bandingkan untuk menjalankan perbandingan. Hasilnya menampilkan perbedaan antara proyek (sumber) dan database (target).
Tinjau perbedaan untuk memverifikasi perubahan yang diharapkan.
Pilih Terapkan untuk menerapkan perubahan ke database.
Tarik perubahan terbaru dari repositori jarak jauh:
cd MyDatabaseProject git pullBangun proyek untuk memverifikasi perubahan yang berhasil dikompilasi:
dotnet buildSebarkan perubahan pada database pengembangan lokal Anda menggunakan SqlPackage:
sqlpackage /a:Publish /sf:bin/Debug/MyDatabaseProject.dacpac /tsn:localhost /tdn:MyDatabaseGanti
MyDatabaseProject.dacpacdengan nama file output Anda.dacpac, dan perbarui nilai server target (/tsn) dan database (/tdn) sesuai kebutuhan.