SO topluluk wiki'sinde veritabanı nesnelerinin sürüm kontrollü olup olmayacağı konusunda bazı tartışmalar yapılmıştır. Ancak, veritabanı nesneleri için bir derleme otomasyon süreci oluşturmaya yönelik en iyi uygulamalar hakkında fazla tartışma görmedim.
Bu, ekibim için tartışmalı bir tartışma konusu oldu - özellikle geliştiriciler ve DBA'lar, veritabanı dağıtımına yönelik bir otomasyon yaklaşımının yararlarını ve risklerini değerlendirirken genellikle farklı hedeflere, yaklaşımlara ve endişelere sahip olduklarından.
SO topluluğundan gerçek dünyada hangi uygulamaların etkili olduğuna dair bazı fikirler duymak istiyorum.
Hangi uygulamaların gerçekten en iyisi olduğunun biraz öznel olduğunun farkındayım, ancak birçok insana hangi çalışmanın yararlı olabileceği hakkında iyi bir diyalog olduğunu düşünüyorum.
İşte bu konudaki ilgi alanlarıyla ilgili bazı teaser sorularım. Bunlar kesin bir liste değildir - daha çok insanların ne aradığımı anlamalarına yardımcı olacak bir başlangıç noktasıdır.
- Hem test hem de üretim ortamları kaynak kontrolünden mi oluşturulmalıdır?
- Her ikisi de otomasyon kullanılarak mı oluşturulmalı yoksa kararlı, sonlandırılmış bir test ortamından nesneler kopyalayarak mı üretilmeli?
- Dağıtım betiklerinde test ve üretim ortamları arasındaki olası farklılıkları nasıl ele alıyorsunuz?
- Devreye alma komut dosyalarının testte olduğu kadar üretime karşı etkili bir şekilde çalışıp çalışmayacağını nasıl test edersiniz?
- Ne tür nesneler sürüm kontrollü olmalıdır?
- Yalnızca kod (prosedürler, paketler, tetikleyiciler, java vb.)?
- Dizinler?
- Kısıtlamalar?
- Tablo Tanımları?
- Tablo Değiştirme Komut Dosyaları? (ör. ALTER komut dosyaları)
- Herşey?
- Hangi tür nesneler sürüm kontrollü olmamalıdır?
- Diziler mi?
- Hibeler?
- Kullanıcı hesapları?
- SCM deponuzda veritabanı nesneleri nasıl düzenlenmelidir?
- Dönüşüm komut dosyaları veya ALTER komut dosyaları gibi tek seferlik şeylerle nasıl başa çıkarsınız?
- Veritabanından kaldırılan nesnelerle nasıl başa çıkarsınız?
- Nesneleri geliştirmeden test seviyesine yükseltmekten kim sorumlu olmalıdır ?
- Birden çok geliştiricinin yaptığı değişiklikleri nasıl koordine ediyorsunuz?
- Birden çok sistem tarafından kullanılan veritabanı nesneleri için dallanma ile nasıl başa çıkarsınız?
- Bu sürece, eğer varsa, makul olan istisnalar yapılabilir?
- Güvenlik sorunları?
- Kimlik gizliliği endişesi olan veriler?
- Tam otomatikleştirilemeyen komut dosyaları?
- Süreci nasıl esnek ve uygulanabilir hale getirebilirsiniz?
- Geliştirici hatası mı?
- Beklenmedik çevre sorunlarına mı?
- Felaket kurtarma için mi?
- Karar vericileri, DB-SCM'nin faydalarının maliyeti gerçekten haklı çıkardığına nasıl ikna edersiniz?
- Anektodsal kanıt?
- Sektör araştırması?
- Sektördeki en iyi uygulama önerileri?
- Tanınmış makamlara itiraz mı?
- Maliyet fayda analizi?
- Bu modelde veritabanı nesnelerine kim "sahip" olmalıdır?
- Geliştiriciler?
- DBA'lar?
- Veri Analistleri?
- Birden fazla?