veritabanı yapısı değişiklikleri için bir sürüm kontrol sistemi var mı?

oy
104

Sık sık şu sorun çıkıyor.

Ben veritabanında yeni tablo veya sütun gerektiren bir projeye bazı değişiklikler üzerinde çalışmaktadır. Ben veritabanı değişiklikleri yapmak ve işimi devam edin. Genellikle, canlı sistemine kopyalamak böylece değişiklikleri not etmeyi unutmayın. Ancak, her zaman ben değiştim ve ben her zaman bunu yazmak hatırlamıyorum hatırlamıyorum.

Yani, canlı sisteme bir hamle yapması ve hiç olmadığı büyük, bariz hata alıyorum NewColumnXöf.

Ne olursa olsun, bu durum için en iyi yöntem olmayabilir gerçeği, veritabanları için bir sürüm kontrol sistemi var? Belirli veritabanı teknolojisi hakkında ilgilendirmiyor. Sadece eğer varsa bilmek istiyorum. MS SQL Server, daha sonra büyük bir çalışmayı olursa.

Oluştur 02/08/2008 saat 02:52
kaynak kullanıcı
Diğer dillerde...                            


22 cevaplar

oy
56

Ruby on Rails olarak, bir kavram var göçü - hızlı komut veritabanını değiştirmek için.

(Örneğin, bir sütun ekleme gibi) db sürümü artırmak için kurallar ve (örneğin, bir sütun kaldırma gibi) versiyonunu downgrade kuralları vardır bir geçiş dosyası üretir. Her göç numaralandırılır ve bir tablo mevcut db sürümü izler.

Için yukarı göç sürümüne bakar ve gerektiğinde komut dosyalarını uygular: siz "göç db" komutunu çalıştırın. Sen benzer bir şekilde aşağı taşıyabilir.

Eğer yeni bir komut kontrol veritabanını değiştirdiğinizde ve herhangi bir geliştirici son sürüme kendi yerel db getirmek için uygulayabilirsiniz - göç komut kendilerini bir sürüm kontrol sistemi tutulur.

Cevap 02/08/2008 saat 07:23
kaynak kullanıcı

oy
29

Ben veritabanı oluşturmak için kaynak dosyalarını kullandığını biraz eski usulle, değilim. Proje-database.sql ve proje-updates.sql - - şema ve kalıcı verileri ve değişiklikler için saniye ilk 2 dosya aslında vardır. Tabii ki, hem kaynak kontrolü altındadır.

veritabanı değişiklikleri, ilk proje database.sql ana şemasını güncelleştirmek zaman örnek ALTER TABLE deyimleri için, o zaman, proje-updates.sql alakalı bilgi kopyalayın. aferin kadar sonra gelişme veritabanı test, yineleme için güncelleştirmeleri uygulayabilirsiniz. Sonra tekrar dosyaları, test check-in ve üretim için de geçerlidir.

Config'de - - Ayrıca, ben genellikle db bir tablo var gibi:

SQL

CREATE TABLE Config
(
    cfg_tag VARCHAR(50),
    cfg_value VARCHAR(100)
);

INSERT IGNORE  INTO Config(cfg_tag, cfg_value) VALUES
( 'db_version', '$Revision: $'),
( 'db_revision', '$Revision: $');

Sonra, ben güncelleme bölümüne aşağıdakileri ekleyin:

UPDATE Config SET cfg_value='$Revision: $' WHERE cfg_tag='db_revision';

db_versionTek veritabanı yeniden edildiğinde değişti ve alır db_revisionbeni db başlangıca kapalı ne kadar uzakta olduğunu bir göstergesidir.

Ben kendi ayrı dosyalarda güncellemeler tutmak olabilir, ama tümünü harmanlayın ve kesilmiş kullanmak ve ilgili bölümleri ayıklamak yapıştırmak seçti. Biraz daha temizlik, kaldırma yani sırada bulunuyor ':' $ Revizyon 1.1 dan $ onları dondurmak için.

Cevap 26/09/2008 saat 21:29
kaynak kullanıcı

oy
11

Redgate adında bir ürün vardır , SQL Kaynak Denetimi . Bu TFS, SVN, SourceGear Vault Pro Vault, Mercurial, Perforce ve Git ile bütünleşir.

Cevap 08/07/2011 saat 15:51
kaynak kullanıcı

oy
11

MyBatis (eski iBatis) bir sahiptir şema göç komut satırında kullanılmak üzere, araç. Ama herhangi bir proje ile kullanılabilir java yazılmıştır.

İyi bir veritabanı değişim yönetimi uygulamalarını gerçekleştirmek için, birkaç anahtar hedeflerini belirlemek gerekir. Böylece, MyBatis Şema Göç Sistemi (veya MyBatis kısa boyunca Taşıma) istiyor:

  • herhangi bir veritabanı ile çalışma, yeni veya mevcut
  • kaynak denetim sistemi Kaldıraç (örneğin CVS)
  • bağımsız çalışmak eşzamanlı geliştiriciler ya ekipleri etkinleştirme
  • çatışmalar çok görünür ve kolay yönetilebilir izin ver
  • ileriye ve geriye doğru geçiş için izin verir (sırasıyla intikal gelişmeye)
  • veritabanının mevcut durumu kolayca erişilebilir ve anlaşılabilir olun
  • erişim ayrıcalıkları veya bürokrasi rağmen göçler etkinleştirme
  • Herhangi metodoloji ile çalışma
  • İyi, tutarlı uygulamalar teşvik
Cevap 10/07/2010 saat 22:56
kaynak kullanıcı

oy
10

Hiç kimse açık kaynak aracı bahsettiği merak liquibase Java tabanlı ve jdbc destekler neredeyse her veritabanı için çalışmalıdır. Raylar ile karşılaştırıldığında bu xml yerine şema değişikliklerini gerçekleştirmek için yakut kullanır. Ben Etki alanına özgü diller için xml sevmediğim halde xml çok serin avantajı liquibase gibi geri belirli işlemleri rulo bilir ki

<createTable tableName="USER"> 
   <column name="firstname" type="varchar(255)"/>
</createTable>

Yani kendi bu işlemek gerekmez

Saf sql ifadeleri veya veri ithalatı da desteklenmektedir.

Cevap 10/07/2010 saat 22:26
kaynak kullanıcı

oy
10

Ben çok tavsiye SQL delta . Sadece ben işim bittiğinde benim özelliğini kodlama fark komut dosyaları oluşturmak için kullanabilirsiniz ve benim kaynak kontrol aracı (Mercurial :)) içine bu komut kontrol

Onlar bir SQL sunucusu ve Oracle versiyonu ikisi de var.

Cevap 28/05/2009 saat 03:12
kaynak kullanıcı

oy
9

Çoğu veritabanı motorları bir dosya halinde veritabanı damping desteklemelidir. Ben MySQL neyse yapar biliyorum. Bu sadece bir metin dosyası olacak, bu yüzden Subversion o göndermek ya da ne kullanabiliriz. Çok dosyalar üzerinde bir diff çalıştırmak için kolay olurdu.

Cevap 02/08/2008 saat 02:56
kaynak kullanıcı

oy
8

SQL Server kullanıyorsanız o (Visual Studio Veritabanı Edition'da aka) Veri Dude yenmek için zor olurdu. Eğer bir şema yapıyor, onu asmak kez kaynak kontrollü veritabanı sürümü ve üretimde sürüm arasında karşılaştırma çocuk oyuncağı. Ve bir tıklama ile size diff DDL oluşturabilir.

Bir öğretim var Video çok yararlı MSDN'de.

Ben DBMS_METADATA ve Toad hakkında bilmek, ama birisi Oracle için bir Veri Dude ile gelebilir o zaman hayat gerçekten tatlı olurdu.

Cevap 10/09/2008 saat 20:49
kaynak kullanıcı

oy
7

oracle paketi DBMS_METADATA bir göz atın.

Özel olarak, aşağıdaki yöntemler özellikle yararlıdır:

  • DBMS_METADATA.GET_DDL
  • DBMS_METADATA.SET_TRANSFORM_PARAM
  • DBMS_METADATA.GET_GRANTED_DDL

Eğer nasıl çalıştıklarını öğrendiğinizde (hoş kendi açıklayıcı) kaynak denetim altına alınması metin dosyalarına bu yöntemlerin sonuçlarını dökümü için basit bir komut dosyası yazabilirsiniz. İyi şanslar!

MSSQL için bu basit bir şey varsa emin değilim.

Cevap 01/09/2008 saat 21:57
kaynak kullanıcı

oy
7

Belirli bir dağıtım için tüm değişiklikleri bulabilmesi için, sadece daha fazla ideal sıralı olarak adlandırılır dosyaları değiştirebilir, hatta bir "değişim seti" olarak, başlangıçtaki tablo ifadeleri değiştirmek sonra, sürüm denetleyicisi tablo ifadeleri oluşturmak eklemesini sağlayın, ancak dosyaları düzenlemek asla.

Ben, belirli bir dağıtım tablosu B için, örneğin bağımlılıkları izlediği görebilirsiniz hardiest bölüm tablosu A. önce güncellenmesi gerekebilir

Cevap 31/08/2008 saat 12:25
kaynak kullanıcı

oy
7

Oracle için kullandığım Toad ayrık dosyaları (tablo başına örneğin, bir dosya) bir dizi bir şema dökümü olabilir. Ben Perforce Bu koleksiyonu yönetmek bazı komut dosyaları var, ama hemen hemen her revizyon kontrol sisteminde rahatlıkla yapılabilir olması gerektiğini düşünüyorum.

Cevap 02/08/2008 saat 07:05
kaynak kullanıcı

oy
6

PLSQL Geliştirici, tüm Civarı Otomasyonlar bir araçtır, Visual Source Safe ile ok (ama büyük değil) çalışır depoları için bir eklenti vardır.

Web'de Gönderen:

Sürüm Kontrol Plug-PL / SQL Geliştirici IDE >> ve Microsoft SCC Arayüz Özellikleri destekleyen herhangi Versiyon Kontrol Sistemi arasındaki sıkı entegrasyon sağlar. >> Bu en popüler Versiyon Kontrol Sistemleri Microsoft gibi Visual SourceSafe içerir >> Merant PVCS ve MKS Kaynak Bütünlüğü.

http://www.allroundautomations.com/plsvcs.html

Cevap 17/09/2008 saat 16:50
kaynak kullanıcı

oy
6

Yıllardır bu kapalı yaptık ve - yöneten (veya yönetmek için çalışıyor) şema sürümleri. en iyi yaklaşımlar var araçları bağlıdır. Eğer Quest Software aracı "Şema Yöneticisi" alabilirsiniz Eğer iyi durumda olacak. Oracle da (çok kafa karıştırıcı?) Ben tavsiye etmiyoruz "Şema Yöneticisi" denir, kendi, alt aracı bulunmaktadır.

Otomatik bir aracı olmadan o zaman doğrudan komut ve DDL dosyaları kullanarak olacak (burada Veri Dude hakkında başka yorum görmek). Bir yaklaşım Pick belgelemek, bunu sıkı bir şekilde takip edin. Ben her an veritabanını yeniden oluşturma olanağı olması gibi, bu yüzden tüm veritabanının tam DDL ihracat sahip olmayı tercih veya geliştirici şemanın (I üründe olursam, (ı DBA olmadığımı) -Geliştirme Modu).

Cevap 15/09/2008 saat 16:01
kaynak kullanıcı

oy
6

Ben kodlama ile paralel olarak benim db yazılım bileşenleri yazmak ve SS bir proje özel bölümünde yazılım bileşenleri tutun. Bir db değişikliğini gerektirir kodunuzda bir değişiklik yaparsanız, o zaman ben aynı anda açma komut güncelleştirmek. Serbest bırakılmadan önce temiz bir dev db (üretimden bilge kopyalanan yapı) üzerindeki serbest bırakma komut dosyasını çalıştırmak ve üzerinde benim son testler yapmak.

Cevap 30/08/2008 saat 19:58
kaynak kullanıcı

oy
5

ER Studio araca veritabanı şemasını tersine çevirmek için ve daha sonra veritabanlarının yaşamak için karşılaştırabilirsiniz sağlar.

Örnek: ER Studio içine geliştirme şema Ters - üretime karşılaştırmak ve farklılıkların tümü listelenir. Bu komut değişiklik ya da sadece otomatik aracılığıyla zorlayabilir.

Eğer ER Studio'da bir şema sahip olduktan sonra, oluşturma komut dosyasını kaydetmek veya tescilli ikili olarak kaydedin ve sürüm kontrolü kaydedebilirsiniz ya. Hiç geri planın bir geçmiş sürümüne gitmek istiyorsanız, sadece bunu kontrol ve db platformuna itin.

Cevap 17/09/2008 saat 19:04
kaynak kullanıcı

oy
5

Ruckusing adında bir PHP5 "veritabanı göç çerçevesi" var. Ben kullanmadım ama örnekler siz veritabanı ve gerektiğinde, sadece kaynak dosyaları izlemek zorunda oluşturmak için dil kullanmak durumunda fikri göstermektedir.

Cevap 02/08/2008 saat 08:48
kaynak kullanıcı

oy
3

Sen kullanabilirsiniz Microsoft SQL Server Veri Araçları SQL Sunucusu Projesi kapsamında veritabanı nesneleri için komut dosyaları oluşturmak için görsel stüdyoda. Daha sonra visual studio yerleşik kaynak kontrolü entegrasyonu kullanarak kaynak kontrolüne komut ekleyebilir. Ayrıca SQL Server Projeleri Eğer bir derleyici kullanarak veritabanı nesneleri doğrulamak ve varolan veritabanını güncellemek veya yeni bir tane oluşturmak için dağıtım komut dosyaları oluşturmak izin verir.

Cevap 22/12/2014 saat 11:58
kaynak kullanıcı

oy
2

Oracle için karşılaştırın Şema özellikle başka bizim Oracle veritabanından değişiklikleri geçirmek için tasarlanmış bir araçtır. Tamamen işlevsel deneme için yazılımı kullanmak mümkün olacak indirme bağlantısı için aşağıdaki adresi ziyaret ediniz.

http://www.red-gate.com/Products/schema_compare_for_oracle/index.htm

Cevap 10/01/2010 saat 03:59
kaynak kullanıcı

oy
2

Biz kullandım MS Team sistem veritabanı Edition'ı oldukça iyi bir başarı ile. Kolayca, daha çok ya da daha az sorunsuz TFS versiyon kontrolü ve Visual Studio ile entegre ve bize vb saklanan procs, görüşlerini, yönetir sağlar. Uyuşmazlık çözümü bir ağrı olabilir, ama bir kez bitti sürüm geçmişi tamamlandı. Bundan sonra, QA ve üretime göçler son derece basittir.

O da, bir sürüm 1.0 ürün olduğundan söylemek yanlış ve birkaç sorunları yok değil.

Cevap 26/09/2008 saat 19:12
kaynak kullanıcı

oy
1

Ben iki yaklaşımdan birini öneriyoruz. İlk olarak, yatırım PowerDesigner Sybase. Enterprise Edition. Bir sürü daha sen Fiziksel datamodels tasarlamayı sağlar ve. Ama size modellerinde kontrol etmenizi sağlayan bir depo ile geliyor. Her yeni check-in başka herhangi bir sürümüne ve hatta o anda veritabanında ne kadar herhangi bir sürümünü karşılaştırabilirsiniz, yeni bir sürüm olabilir. Daha sonra her farkın bir listesini sunmak ve göç gereken sormak ... sonra bunu yapmak için komut oluşturur olacaktır. Ucuz değil ama iki katı fiyata pazarlık ve YG yaklaşık 6 aydır bu.

Diğer bir fikir DDL denetim (Oracle çalışır) açmaktır. Bu yaptığımız her değişiklik bir tablo oluşturur. Eğer damgası değişiklikleri sorgulamak Eğer son anda üzere eşya için veritabanı değişiklikleri taşındı yaptığın her şeyin sıralı bir listesini olacak. maddeleri sıfır toplamı ortadan kaldırmak için burada birkaç tablo foo oluşturmak gibi değiştirir; damla Tablo foo takip eder; ve KOLAYCA bir mod komut dosyası oluşturabilirsiniz. Bir wiki değişiklikleri tutmak Neden, bu işe çift bu. Veritabanı bunları sizin için takip edelim.

Cevap 26/09/2008 saat 18:53
kaynak kullanıcı

oy
1

İki kitap önerileri: "Refactoring Veritabanları" Ambler ve Sadalage ve Ambler tarafından "Çevik Veritabanı Teknikleri" ile.

Birisi Raylar Göçler bahsetti. Ben bile Raylar uygulamaların dışında, büyük iş düşünüyorum. Bence Raylar için taşıma sürecinde olduğumuzu SQL Server ile bir ASP uygulamaya onları kullandı. Sen VCS içine göç komut dosyalarını kendilerini kontrol edin. İşte Pragmatik Dave Thomas tarafından yazılan konuyla ilgili.

Cevap 22/09/2008 saat 19:17
kaynak kullanıcı

oy
1

tablo değişiklikleri için bir VCS yokluğunda bir wiki bunları yaptıktan oldum. ne zaman ve neden değiştirildi En azından o zaman görebilirsiniz. O bunu herkes yapıyor ve biz kullanımda birden fazla ürün sürümleri gibi mükemmel olmaktan uzak, ama hiç yoktan iyidir.

Cevap 01/09/2008 saat 08:29
kaynak kullanıcı

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