Testi SQL Server Veritabanları Dağıtma Live

oy
24

Bir gelişme ve canlı bir tane var, çocuklar Şimdi, özellikle SQL Server 2005 2 SQL Server arasındaki bir veritabanı dağıtımını yönetmek merak ediyorum. Bu bir buildscript parçası olması gerektiği gibi (hatta bu komut geçerli karmaşıklığı ile ilgisi, standart pencere toplu i kadar sonra PowerShell veya geçiş olabilir), Enterprise Manager / Management Studio Express sayılmaz.

Sadece mdf dosyası kopyalayıp eklemek istiyorsunuz? İkili verilerle çalışırken bu compatiblity sorunu gibi görünüyor, her zaman biraz dikkat ediyorum (hatta gelişme olsa ve bütün anda sunucunun aynı sürümünü çalıştırmalısınız canlı).

Veya - T-SQL TABLO OLUŞTURMA EXPLAIN eksikliği verilen - Eğer hedef sunucuda çalıştırabilirsiniz SQL Script içine varolan veritabanını ihraç şey yapmak mı? Evetse, otomatik SQL Sorgularla verilen bir veritabanı dökümü olabilecek bir araç var ve bu komut satırını kaçar? (Yine, müessese müdürü / Management Studio Express sayılmaz).

Ve son olarak - canlı veritabanı zaten dağıtım bütün tablolar oluşturma ziyade mevcut alanlar değiştirdiğinizde da veri doğrulama / dönüşüm gerekebilir yerine canlı olanları, yapısındaki fark denetleme ve TABLO DEĞİŞTİRME dahil olmayabilir verileri içeren gerçeğini verilen.

Şimdi, ben hakkında çok bir sürü şey duymak Kırmızı Kapısı ürünleri, ama hobi projeleri için, fiyatı biraz dik.

Yani, otomatik Live Testi SQL Server Veritabanları dağıtmak için ne kullanıyorsunuz?

Oluştur 03/08/2008 saat 00:30
kaynak kullanıcı
Diğer dillerde...                            


14 cevaplar

oy
19

Ben aldım benim DDL'YI tüm elle kodlama metin dosyaları olarak benim .sln ekleyerek ve normal sürüm kullanılarak, ifadeleri (/ silme / değiştirme oluşturur) (subversion kullanarak, ancak herhangi bir revizyon kontrolü çalışması gerekir). etiketleri, şube ve böylece işin hepsi aynı üzerine - Bu şekilde, sadece sürüm faydalanmak, ancak dev canlı güncellemeniz değil / sahne kodu ve veritabanı için aynı işlemdir.

Aksi takdirde, ben sizin için satın bir şirket yoksa Redgate pahalı katılıyorum. Gerçi sizin için satın bir şirket sağlayabilirseniz, gerçekten buna değer!

Cevap 03/08/2008 saat 00:51
kaynak kullanıcı

oy
14

Benim projeleri için ben SQL REd Kapısı'ndan karşılaştırın ve özgür olabilir Veritabanı Microsoft'tan Yayıncılık Sihirbazı arasında alternatif burada .

SQL karşılaştırın veya SQL Veri karşılaştırın ama hile yaptığı gibi Sihirbazı kadar kaygan değildir. Bir sorun oluşturduğu komut tek atışta akmaya bazı yeniden düzenleme ve / veya düzenleme gerekebilir olmasıdır.

Yukarı tarafta, bu ücretsiz bir araç için kötü değil senin şema ve veri taşıyabilirsiniz.

Cevap 03/08/2008 saat 00:40
kaynak kullanıcı

oy
7

: Sorununa Microsoft'un çözüm unutma Visual Studio 2008 veritabanı Edition'ı . , Veritabanlarına değişiklikleri dağıtma şema ve / veya veri değişiklikleri, ünite testleri, test verileri nesil için veritabanları arasında bir diff üretmek için araçları içerir.

Oldukça pahalı ama bir süre için deneme sürümünü kullanılan ve parlak olduğunu düşündüm. Bu kodun herhangi bir başka parça olarak çalışmak için veritabanı olarak kolaylaştırır.

Cevap 18/08/2008 saat 11:47
kaynak kullanıcı

oy
6

Rob Allen gibi ben SQL Veri REDGATE Karşılaştırma ölçütü / karşılaştırın kullanın. Ayrıca Microsoft tarafından Veritabanı yayıncılık sihirbazını kullanın. Ben de bir sql komut dosyası alır ve bir sunucu üzerinde o ishal C # yazdığı bir konsol uygulaması vardır. Böylece, bir komut satırından veya bir toplu komut içinde 'Git' komutlarıyla büyük komut dosyalarını çalıştırabilirsiniz.

Ben konsol uygulamasında Microsoft.SqlServer.BatchParser.dll ve Microsoft.SqlServer.ConnectionInfo.dll kütüphaneleri kullanır.

Cevap 04/08/2008 saat 19:00
kaynak kullanıcı

oy
4

Ben oluşturma ve ben kaynak rölantiye bir metin dosyasına tablo değiştiren benim SQL komut dosyaları her tutarak, Karl yapar aynı şekilde çalışır. Aslında, bir komut değiştiren çalıştırmak için ne olduğunu belirlemek için canlı veritabanı incelemek zorunda zorunda sorununu önlemek için, genellikle bu gibi çalışması:

  • ilk sürümü, ben bir SQL komut dosyası içine test sırasında her şeyi yerleştirin ve bir CREATE gibi tüm tabloları davranın. Bu benim bırakarak ve test sırasında masalar çok readding sona anlamına gelir, ancak (Ben genellikle Zaten bu noktada kullanıyorum verileri giriyorum beri) erken projeye büyük bir anlaşma değil.
  • sonraki tüm sürümlerinde, iki şey yapmak: Ben bu sürümün sadece değiştirir ihtiva yükseltme SQL komut dosyalarını, tutmak için yeni bir metin dosyası olun. Ve değişiklikler orijinal için, hem de taze bir veritabanı komut dosyası oluşturmak olun. Bu şekilde yükseltme sadece yükseltme komut çalışır, ancak biz DB yeniden oluşturmak zorunda eğer oraya 100 komut dosyalarını çalıştırmak için gerek yoktur.
  • Ben DB değişiklikleri dağıtma ediyorum bağlı olarak, ben de genellikle DB sürümünü tutan DB sürüm tablosunu koyacağım. Sonra, ben yükseltme oluşturmak / komut dosyalarını çalıştıran ne olursa olsun kod komut dosyaları çalıştırmak için hangi herhangi bir insan kararlar yerine çalıştırmak için ne olduğunu belirlemek için sürümünü kullanır.

Bu olmayacak bir şey üretime testinden taşıyoruz şeyin bir parçası veri ise yardımcı olmakla birlikte, yapısını yönetmek ve güzel, ama pahalı DB yönetimi paketi için ödemek istiyorum, gerçekten çok zor değildir. Ben de sizin DB zihinsel takip oldukça iyi bir yoldur buldum.

Cevap 03/08/2008 saat 01:37
kaynak kullanıcı

oy
3

SMO / DMO kullanarak, şemanın bir komut dosyası oluşturmak için çok zor değildir. Veriler biraz daha eğlenceli, ama yine de yapılabilir olduğunu.

Genel olarak, ben "Senaryo It" bir yaklaşım, ancak bu satırlar boyunca bir şey düşünebilirsiniz:

  • Verilerin bir alt kümesiyle geliştirin öyle ki, Gelişme ve Evreleme ayırt ... Bu ben sadece bazı üretim verilerini aşağı çekin veya güvenlik konusu olduğunda sahte verilerini oluşturmak için bir araç oluşturacak.
  • Takım gelişimi için veritabanına her bir değişikliği ekip üyeleri arasında koordine edilmesi gerekecektir. Şema ve veri değişiklikleri içe, ancak tek bir komut verilen bir özelliği etkinleştirmek gerekir. tüm özellikleri hazır olduğunda, tek bir SQL dosyasında bu paket ve bir karşı üretimin geri olduğunu çalıştırın.
  • kademelendirme kabul temizlenir sonra, üretim makinesinde tekrar tek bir SQL dosyasını çalıştırın.

Kızıl Kapısı araçlarını kullanmış ve bunlar harika araçlar, ama bunu göze alamaz eğer, araçları inşa ve bu şekilde çalışma çok ideal olmaktan uzak değildir.

Cevap 04/08/2008 saat 18:38
kaynak kullanıcı

oy
3

Bunu satın alan bir şirket varsa, Görev Software dan Toad inşa yönetimi işlevselliği bu tür vardır. Temelde iki şemaları karşılaştırmak ve birinden diğerine bir senkronizasyon komut dosyası oluşturmak için bir iki tıklama operasyon.

Bunlar elbette SQL Server dahil, popüler veritabanlarından çoğu için sürümleri var.

Cevap 03/08/2008 saat 01:22
kaynak kullanıcı

oy
2

Ben de bütün nesneleri ve verileri için komut korumak. - dağıtma için bu ücretsiz programı yazdım http://www.sqldart.com . Bu sizin komut dosyalarını yeniden düzenlemek ve bir işlem içinde sürü çalışacak bildireceğiz.

Cevap 08/06/2010 saat 22:33
kaynak kullanıcı

oy
2

RedGate SqlCompare Bence gitmek için bir yoldur. Biz düzenli olarak DB dağıtımını yapmak ve ben o aracı kullanmaya başladığımdan beri geri baktım hiç. Çok sezgisel arayüzü ve sonunda çok zaman kazandırır.

Pro sürümü de kaynak kontrol entegrasyonu için komut dosyası ilgilenir.

Cevap 28/08/2008 saat 01:22
kaynak kullanıcı

oy
2

Ben sadece yukarı ve aşağı 2 metodları da vardır Sıralı sırayla sınıfları ile dll var bu yüzden SubSonic'ın göçler mekanizmasını kullanıyorum. Benim veritabanının yükseltme otomatik böylece Nant içine sürekli bir entegrasyon / script kurmak kanca vardır.

Onun değil dünyanın en iyi thign, ancak DDL yazma yener.

Cevap 26/08/2008 saat 18:39
kaynak kullanıcı

oy
2

Ben kaynak denetiminde her şeyi tutmak ve elle tüm değişiklikleri komut dosyası katılıyorum. Tek bir serbest bırakılması için şema değişiklikleri bu sürüm için özel olarak oluşturulan bir komut dosyası içine gidin. Tüm saklı procs, görünümler, vb ayrı ayrı dosyalara gidin ve sadece .cs gibi muamele veya kadarıyla kaynak kontrol geçtikçe .aspx gerekir. Ben programlanabilirliği şeyler güncellenmesi için büyük bir .sql dosyası oluşturmak için bir powershell komut dosyasını kullanabilirsiniz.

Bir üretim salınımını yaparken vb yeni tablolar, yeni sütunlar gibi, şema değişiklikleri uygulamayı otomatik hale sevmiyorum, ben beklendiği gibi her biri çalıştığından emin olmak için komutuyla değişiklik komut komutu ile gitmek ister. üretim üzerinde büyük bir değişim komut dosyası çalıştıran ve geliştirme kendini mevcut değildi bazı küçük ayrıntıyı unuttu çünkü hataları almak daha kötü bir şey yoktur.

Ben de endeksler sadece kod dosyaları gibi muamele ve kaynak kontrolüne konması gerektiğini öğrendik.

Ve kesinlikle en fazla 2 veritabanları olmalı - dev ve yaşa. Herkesin günlük dev görevler için kullandığı bir dev veritabanı olmalıdır. Sonra üretimini taklit ve entegrasyon test yapmak için kullanılan bir evreleme veritabanı. O zaman belki (tam yedekten geri) üretimin tam güncel kopyası, yani mümkün olduğunu, bu nedenle kurulum test son tur mümkün olduğunca gerçek bir şey olarak yakındır şeye karşı giderse.

Cevap 13/08/2008 saat 16:41
kaynak kullanıcı

oy
2

Her şeyi komut dosyası gitmek için en iyi yoldur ve iş yerinde savunan budur konusunda hemfikirdir. Eğer arama tabloları doldurma için DB'den komut her şey ve nesne oluşturma gerektiği.

UI yaptıkları her şey, yalnızca (... özellikle değişiklikler için ilk dağıtımlar için çok değil) çevirmek olmaz ve Redgate sundukları gibi araçlar gerektiren sona erecek.

Cevap 03/08/2008 saat 02:38
kaynak kullanıcı

oy
1

Şu anda aynı şeyi sana çalışıyorum. Sadece yaşamak için testten SQL Server veritabanlarını dağıtma değil, aynı zamanda Yerel gelen tüm süreci içerir -> Entegrasyon -> Test -> Üretimi. Yani her gün bana kolayca yapabilir ne is yapmam karşılaştır Kırmızı Kapısı SQL ile NAnt görev . Ben REDGATE için çalışmıyorum ama iyi bir seçim olduğunu söylemek gerekir.

Cevap 27/11/2008 saat 04:15
kaynak kullanıcı

oy
1

Ben DDL olarak tüm veritabanı oluşturma yapmak ve daha sonra bir şema korunması bu sınıfa o DDL'yi sarın. Ben ilk etapta DDL oluşturmak için çeşitli şeyler yapabilir ama temelde kod tüm şema maint yapmak. Bu aynı zamanda bir SQL tam olarak eşleşmeyen olmayan DDL şey yapması gerekir eğer prosedürel mantığı yazmak ve DDL / DML topaklar arasında çalıştırmak anlamına gelir.

Benim dbs o zaman biri testlerin oldukça basit bir set kod geçerli sürümü tanımlayan bir tablo var:

  1. DB var mı? oluşturun etmiyorsa.
  2. DB güncel sürümü var mı? Daha sonra güncel şemayı getirmek sırayla yöntemler, koşma (bu noktada yedekleme yapmak - - ideal olarak onaylamak ve kullanıcıdan istemek olabilir).

Tek bir kullanıcı uygulama için ben sadece bir yerde bu çalıştırmak versiyonları maç ve biz koşmak bağımsız bir şema Maint uygulamasını yoksa bir web uygulaması için şu anda dışarı kullanıcıyı kilitlemek için. Çok kullanıcı için bu özellikle çevreye bağlı olacaktır.

Avantaj? Eh bu metodolojiyi kullanan uygulamalar için şema bu uygulamaların tüm örneklerinde tutarlı bir güvenlik çok yüksek düzeyine sahip. Onun değil mükemmel, sorunları vardır, ama işe yarıyor ...

Orada bir ekip ortamında geliştirirken bazı sorunlar vardır ama bu verilen zaten az ya da çok bu!

Murph

Cevap 26/08/2008 saat 16:38
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more