Saat ini saya menggunakan Tortoise SVN untuk sumber mengontrol Aplikasi Web .NET. Apa yang akan menjadi cara terbaik untuk membawa prosedur tersimpan SQL Server kami ke dalam Kontrol Sumber? Saat ini saya menggunakan VS 2010 sebagai lingkungan pengembangan dan menghubungkan ke database SQL Server 2008 R2 off-premise menggunakan SQL Server Data Tools (SSDT).
Apa yang telah saya lakukan di masa lalu adalah menyimpan procs ke file .sql dan menjaga file ini di bawah kendali sumber. Saya yakin pasti ada cara yang lebih efisien dari ini? Apakah ada ekstensi yang dapat saya instal pada VS2010, SSDT atau bahkan SQL Server pada mesin produksi?
Jawaban:
Ada alat di luar sana, seperti ini dari Redgate , tetapi saya selalu menemukan bahwa yang terbaik adalah menyimpan sebagai file SQL, bahkan mungkin dalam Proyek Database (SSDT?) Dalam solusi Anda.
Bersamaan dengan ini, saya menyarankan pedoman berikut:
if exists then drop
" yang sesuai di awalAnda awalnya dapat membuat file SQL ini dengan skrip langsung dari SSMS, dan Anda dapat mengatur SSMS untuk skrip semua "
drop
" dan "create
" serta izin Anda.sumber
Menyimpan file SQL di kontrol sumber memberikan kontrol atas file SQL saja. Itu tidak mengontrol perubahan objek database yang sebenarnya, juga tidak mencegah perubahan simultan objek database yang sama oleh banyak pengguna (dan saya kira Anda juga ingin mengontrolnya). Apa yang kami gunakan adalah alat pihak ke-3 ( Versi ApexSQL), itu terintegrasi baik dengan SSMS dan VS, Anda dapat memilih apakah akan bekerja dengan versi database objek, atau dengan versi Kontrol Sumber. Jika Anda mengedit versi database, versi itu secara otomatis diperiksa hanya untuk Anda, jadi tidak ada orang lain yang bisa mengeditnya (tidak menggabungkan perubahan dari pengguna yang berbeda). Hanya ketika Anda memeriksanya lagi, orang lain dapat memodifikasinya. Dan Anda dapat membuat versi SC Anda berbeda dari versi objek hidup (Saya menggunakannya ketika saya berangkat hari itu dan berencana untuk menyelesaikan pengeditan dan mengujinya di hari berikutnya)
sumber
Gunakan RedGate Source Control untuk menghubungkannya ke kontrol sumber Anda.
http://www.red-gate.com/products/sql-development/sql-source-control/
Ini akan mengaitkan SSMS Anda langsung ke repositori kontrol sumber Anda dan bahkan memungkinkan untuk memeriksa data statis.
Bekerja seperti pesona
sumber
Coba Ankhsvn , sangat dianjurkan dan gratis.
Dari beranda:
sumber
Saya telah mencoba proyek database RedGate dan Visual Studio dan saya lebih suka menyimpan definisi database dalam proyek database. Segera setelah database menjadi bagian dari solusi, Anda dapat menggunakan penyedia kontrol sumber pilihan Anda. Sebagian besar memiliki integrasi Visual Studio yang sangat baik.
Dengan alat SSDT Anda memiliki 'versi terbaru' dari definisi basis data, memungkinkan Anda untuk dengan mudah membuat perbandingan skema dan menghasilkan skrip peningkatan skema.
Konon, skema biasanya hanya bagian dari persamaan. Dalam kehidupan nyata ternyata database sudah memiliki banyak data. Dan pengguna saya cenderung agak kecewa ketika kehilangan itu.
Jadi segera setelah saya meluncurkan v1.0 perlu muncul untuk mempertahankan skrip upgrade. Kadang-kadang ini hanya berisi perubahan skema, tetapi berkali-kali saya perlu membuat default berdasarkan konten dari beberapa tabel lain, perlu merilis batasan tertentu sampai saya seeded data dll. Biasanya hanya dengan memperbarui skema tidak cukup memotongnya. Preferensi saya adalah memiliki skrip pemutakhiran ini di folder terpisah di proyek basis data juga. Ini biasanya terlihat seperti 'upgrade dari v1.0 ke v1.1'.
Basis data saya selalu memiliki tabel referensi yang memberi tahu saya nomor versi saat ini, jadi saya dapat memblokir pembaruan yang tidak kompatibel. Pernyataan pertama dalam skrip pemutakhiran saya memeriksa versi saat ini dan memberikan jaminan jika berbeda dari yang diharapkan.
Manfaat lain dari proyek basis data adalah untuk dapat menggunakan set data yang berbeda berdasarkan skema yang sama. Saya memiliki kumpulan data yang berbeda untuk pengembangan, tim QA, tes penerimaan pengguna dan untuk tes integrasi otomatis. Karena proyek basis data hanya dapat memiliki 1 skrip pasca-penempatan, triknya di sini adalah membuat proyek basis data baru yang merujuk proyek 'master' dan menjadikan kumpulan data khusus sebagai bagian dari proses pasca penempatan proyek tersebut.
Ini adalah 2 sen saya, Apapun proses yang Anda lakukan, di atas segalanya, itu pasti cocok untuk Anda dan tim Anda dan mudah-mudahan mendukung Anda dengan sebagian besar tugas umum.
sumber
Saya akhirnya menulis alat sendiri.
Ini tersedia untuk diunduh gratis - http://www.gitsql.net
Saya harap ini membantu orang lain yang ingin mencapai tujuan akhir yang sama.
Berikut ini adalah artikel yang menjelaskan cara sumber mengontrol SQL Server. http://gitsql.net/documentation-04_SQL_Server_and_GIT
Saya sudah mencoba membuatnya semudah mungkin. (3 layar)
Saya juga - secara tidak sengaja - menambahkan fitur untuk dapat secara selektif memilih objek individual untuk diimpor - atau diekspor. Yang membuatnya jauh lebih mudah saat berkembang.
Saya biasanya akan membuat perubahan ke prosedur tersimpan dan sebuah tabel, dan kemudian mengekspor dua objek tersebut ke direktori GIT.
Kemudian saya menggunakan Source Tree untuk melihat perubahan secara visual dan kemudian mengkomitnya ke dalam bitbucket jika saya senang.
sumber
Perusahaan saya baru saja mengembangkan alat baru ini ( gratis ) yang membantu Anda untuk dengan mudah mengekstrak skrip untuk basis data SQL, dapat melakukan perbandingan , dapat meluncurkan WinMerge untuk membandingkan skrip dengan basis data secara langsung, dan juga dapat menyelaraskan perbedaan baik memperbarui skrip atau menerapkan perubahan ke database (kecuali untuk tabel, yang akan melibatkan lebih banyak kerumitan dan lebih banyak risiko).
Servantt adalah WinMerge untuk membandingkan Database SQL Server dengan Skrip Versi-Terkontrol.
Ini mendukung dan mendorong praktik terbaik dalam pengembangan perangkat lunak:
(*) Skrip disimpan ke folder lokal yang dapat menjadi copy Git, Subversion, TFS, Source Safe, atau VCS lainnya yang berfungsi.
Unduh Gratis: http://servantt.com
Versi profesional (yang masih dalam pengembangan) akan menjadi binatang yang sama sekali berbeda - itu ditargetkan pada penyebaran otomatisasi (manajemen rilis), untuk mengotomatisasi tugas-tugas seperti memperbarui IIS, memperbarui Layanan Windows, dll.
sumber