SORU
8 AĞUSTOS 2008, Cuma


Nasıl geliştirme, test ve üretim veritabanları yönetmek musunuz?

Zor zamanlar geliştirme, test ve üretim sunucu arasında veritabanı şemaları ve veri yönetmek için nasıl iyi bir örnek bulmaya çalışarak geçirdim.

İşte bizim Kur. Her geliştirici bir sanal makine uygulaması ve MySQL veritabanı çalışıyor. İstediğiniz her şeyi kendi kişisel sanal olduğunu. Şu anda, geliştiriciler SQL şema için bir değişiklik yapın ve SVN içine işleyen bir metin dosyasına veritabanı dökümü yapacak.

Her zaman en son kaydedilmiş kod çalıştıran sürekli entegrasyon geliştirme sunucusu dağıtmak isteyen biziz. Eğer bunu şimdi yapmazsak, her bir yapı için SVN veritabanını yeniden yükler.

"Sürüm adayı." çalışan (sanal) bir test sunucusu var Test sunucusuna dağıtma şu anda çok elle yapılan bir işlemdir, ve genellikle beni SVN ve verdiği bu son SQL yükleme içerir. Ayrıca, test sunucusundaki verileri tutarsız. Tamamlanması için son geliştirici sanal sunucusu ne olursa olsun.

Her şeyi yıkar nerede üretim dağıtım. Test verileri ile canlı veriler üzerine edemeyiz, çünkü bu el ile yeniden oluşturmak tüm şema değişiklikleri içerir. Eğer bu verileri işlemek için şema değişiklikleri veya dönüşüm komut büyük bir sayı olsaydı, bu gerçekten zorlu olabilir.

Eğer sorun sadece şema, olur daha kolay bir sorun, ama orada "temel" veri veritabanına güncelleme sırasında geliştirme, gibi meta-veri güvenlik ve izinleri tablolar.

Bu sürekli entegrasyon doğru yürürken gördüğüm en büyük engeldir ve " bir adım oluşturur. Nasıl yapmaksanabunu çözmek?


Bir takip soru: nasıl çalıştırmak için hangi belirli bir veritabanı örneği yükseltmeye yani veritabanı sürümleri takip edebilirsiniz? Lance standart prosedür aşağıda bahseder gibi sürüm bir masa mı?


Tarantino başvuru için teşekkürler. Bir değilim .NET ortamı, ama onların çok yardımcı olmak DataBaseChangeMangement wiki page buldum. Powerpoint Presentation (.ppt) özellikle bu

Yazacağım bir Python betiği denetler isimleri *.sql komut belirli bir dizinde bir tablo veritabanı ve çalışan olanları yok sipariş dayanarak bir tamsayı formları ilk bölümünün adı. Eğer çok basit bir çözüm olacak sanıyorum, burada göndeririz.


Bunun için çalışan bir komut dosyası var. Eğer öyle olsaydı zaten DB başlatılıyor ve gerekli yükseltme komut dosyası çalıştıran işler. Ayrıca varolan bir veritabanını silip bir test dosyasından veri almak için anahtarları vardır. Eğer ilgi varsa pastebin üzerinde koyabilir olsa) sonrası yok, o yüzden 200 satır.

CEVAP
8 AĞUSTOS 2008, Cuma


İyi birkaç seçenek vardır. "Yedek" stratejisi. geri kullanmazdım

  1. Tüm şema değişiklikleri komut dosyası, ve CI server veritabanı üzerinde bu komut dosyalarını çalıştırmak zorunda. Eğer daha yeni bir sürüm için geçerli Veritabanı Sürümü izlemek, ve sadece bu komut dosyalarını çalıştırmak için sürüm bir tablo var.

  2. Göç bir çözüm kullanın. Bu çözümler için dil ile, ama değişebilir .Ben NET Migrator.NET kullanın. Bu veritabanı ve hareket yukarı ve aşağı sürümler arasındaki sürümü sağlar. Şeması C belirtilen# kodu.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AceHoodVEVO

    AceHoodVEVO

    12 Mayıs 2009
  • engineerguy

    engineerguy

    10 Ocak 2010
  • Troy Hunt

    Troy Hunt

    29 EYLÜL 2011