SORU
16 EYLÜL 2008, Salı


Saklı yordamları kaynak kontrolü DB şema/

Seçim kaynağı kontrol sistem saklı yordam ve veritabanı şema takip musun?

Değişim (tablo ekleme, saklı yordam güncelleştirme, kaynak değişiklikleri almak mı kontrol? yaptığınızda

İş yerinde SQL Server kullanıyoruz ve sürüm oluşturma için darcs kullanmaya başladım, ama genel strateji olarak, herhangi bir el araçlar hakkında çok merak ettim.

Düzenleme:Vay, harika öneriler için teşekkürler, çocuklar! Birden fazla seçmek isterdim "Kabul edilmiş Cevap"!

CEVAP
16 EYLÜL 2008, Salı


Saklı yordamları ve şema değişiklikleri içeren her şey senaryo ve biz seçiyoruz. Üstteki araçlar ve süslü 'sync' programları gereklidir.

Şema değişiklikleri kolay, tüm yapmanız gereken, ve tek bir dosya oluşturmak ve korumak tüm şema ve veri değişiklikleri içeren bu sürüm için. Bu x 1 x sürümü dönüştürme komut olur. Sonra üretim yedeği ile karşılaştırdın ve 'günlük' çalıştığını doğrulamak için hatasız. yapı içine entegre edebilirsiniz ÖNEMLİ NOT.

-- change #1234
ALTER TABLE asdf ADD COLUMN MyNewID INT
GO

-- change #5678
ALTER TABLE asdf DROP COLUMN SomeOtherID
GO

Saklı yordamları için, sproc başına tek bir dosya için seçiyoruz, ve açılan formu oluştur/kullanır. Tüm görünümler dağıtım sırasında oluşturulur. Dezavantajı ise bir değişiklik kaynak kontrolü dışında yapıldığını, bu değişiklik kaybolur. Aynı zamanda, herhangi bir kod için doğru ama DBA ' A bu farkında olmak gerekir. Bu gerçekten yaptıkları değişiklikleri yükseltme kaybolur gibi takım saklanan prosedürleri ile mucking dışında insanlar durur.

Sql Server'ı kullanarak, sözdizimi şu şekildedir:

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[usp_MyProc]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [usp_MyProc]
GO

CREATE PROCEDURE [usp_MyProc]
(
    @UserID INT
)
AS

SET NOCOUNT ON

-- stored procedure logic.

SET NOCOUNT OFF

GO

Tek şey kaldı tüm dosyaları tek tek toplar ve güncellemeleri tüm seti ile yeni bir dosya oluşturan bir yardımcı program yazmak (tek bir komut olarak). İlk şema değişiklikleri dizin yapısı recursing ve tüm saklı yordam dosyaları da dahil olmak üzere sağlanmalıdır.

Her komut dosyası için bir baş gibi, okuma ve yazma SQL de çok daha iyi olacaksın. Ayrıca tüm bu süreç daha özenli olabilir, ama bu tüm sql herhangi bir özel yazılım olmadan kaynak kontrolü nasıl temel bir biçimidir.

ek: Rick/OLUŞTUR DAMLA ile saklı yordamları izinleri kaybedersiniz, yeniden sağlayacak bir senaryo yazmak gerekebilir çok özel izinler doğru. Bu izin, komut dosyasını çalıştırmak için son olurdu. Deneyimlerimiz, ALTER Ayetler ile daha fazla sorunları semantik OLUŞTURMA/BIRAKMA bulundu. YMMV

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ciaran Blumenfeld

    Ciaran Blume

    20 NİSAN 2009
  • David Tedeyev

    David Tedeye

    20 AĞUSTOS 2011
  • How Things Are Made

    How Things A

    17 HAZİRAN 2008