SORU
2 ŞUBAT 2009, PAZARTESİ


Veritabanı Dağıtım Stratejileri (SQL Server)

Bir günlük dağıtımlar yapmak ve veritabanı komut sürümleri ile tutmak için arıyorum.

Şu anda, bizim kaynak dağıtımı oldukça iyi bir yol var, birim kod kapsamı, sürekli entegrasyon ve geri alma işlemleri vardır.

Sorun açıklaması doğrultusunda veritabanı komut dosyalarını tutuyor. Herkes test veritabanı sonra ORM eşlemeleri (değişiklikleri canlı gider) yeni sütun alır sonra güncelleme yaşamak onları çalıştırmak, üzerinde komut dosyası deneyin gibi görünüyor.

İlk sorun olduğunu hiçbir komut için yazılmış herhangi bir yerde, genellikle herkes "girişimleri" koymak onları içine bir Subversion klasör ama bazı geçtikçe insanlar sadece bir kaç senaryo üzerinde yaşayan ve çoğu zaman da kimse bilmiyor kim ne için veritabanı.

İkinci sorun 4 test veritabanları var ve her ZAMAN satır ve gerçekten onları tekrar hizaya için tek yol, bir canlı veritabanı geri yükleme.

Böyle bir işlem, basit, anlaşılır ve kolay olması gerekir bu büyük bir mümin bir geliştirici yardımcı olmak, onlara engel değil için kullanmak duyuyorum.

Ne arıyorum geliştirici koştu böylece veritabanı komut dosyalarını kaydetmek için serbest bir prosedürün bir parçası olarak istiyor kolaylaştıran fikirler/teknikleri vardır.Bir geliştirici takip etmek isterim bu süreç.

Herhangi bir hikaye, durumlarda kullanın hatta bir link yararlı olacaktır.

CEVAP
5 ŞUBAT 2009, PERŞEMBE


Göç aracı kullanmak için seçtim bu çok sorun için: Migratordotnet.

Göçler (herhangi bir araç) ile basit bir sınıf değişiklikleri gerçekleştirmek ve onları geri almak için kullanmış. İşte size bir örnek:

[Migration(62)]
public class _62_add_date_created_column : Migration
{
    public void Up()
    {
       //add it nullable
       Database.AddColumn("Customers", new Column("DateCreated", DateTime) );

       //seed it with data
       Database.Execute("update Customers set DateCreated = getdate()");

       //add not-null constraint
       Database.AddNotNullConstraint("Customers", "DateCreated");
    }

    public void Down()
    {
       Database.RemoveColumn("Customers", "DateCreated");
    }
}

Bu örnek, geçici güncelleştirmeleri işlemek için nasıl, mevcut veri olan bir tablo için boş olmayan yeni bir sütun ekleme gibi gösterir. Bu kolayca otomatik hale getirilebilir ve kolayca yukarı ve aşağı sürümleri arasında gidebilirsiniz.

Bu bizim inşa etmek için çok değerli bir katkı oldu, ve aerodinamik süreci vardırson derece.

Çeşitli geçiş çerçeveler karşılaştırma yayınlanmıştır .NET burada: http://benscheirman.com/2008/06/net-database-migration-tool-roundup

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • androidandme

    androidandme

    10 Mart 2009
  • colacas

    colacas

    29 EKİM 2006
  • Titan Lee Hai

    Titan Lee Ha

    14 Temmuz 2008