2012-02-17 13 views
9

Yaklaşık 100 veritabanı taşıma dosyamız var. Birçoğu geri dönüşü olmayan şema değişiklikleri yapar. Daha sonra, daha önceki geçişlerde oluşturulan tabloları değiştiren veya kaldıran geçişler de vardır.Çok sayıda veritabanı taşıma dosyamız var - onları tutmalı mıyız?

Doğrudan schema.rb dosyasından yeni veritabanları oluşturuyoruz, bu yüzden tam bir geçiş kümesini tutmak için herhangi bir neden olup olmadığını merak ediyoruz.

Mevcut şema.rb'ye dayalı yeni bir geçiş oluşturacağız.

cevap

7

Evet, önerdiğiniz şey en iyi uygulama olarak kabul edilir.

Bunu eski uygulamalarımda birkaç kez yaptım. Her şeyden memnun olduğunuza kadar, geçişlerinizi bir yere kadar geri yüklemek isteyeceksiniz, tabi ki, bu, uygulama bakımının önemli bir parçasıdır - çok fazla eski göçmeniniz varsa, db:reset ya da çalışan yeni bir geliştirme ortamı olsun.

+0

Bu konu hakkında konuşulan bir yer bulmaya çalıştık - raylar/veritabanı ile ilgili en iyi uygulamalar hakkında ayrıntılı bilgi veren herhangi bir site veya kaynak var mı? – roo

+0

@roo Birkaç "en iyi uygulama" sitesini gördüm, ancak bunların hiçbiri özellikle bu sorunu ele almıyor. Bunu yerel bir hackathondaki bazı Rubyistlerle tartıştıktan sonra en iyi uygulama olarak ele aldım; neredeyse bilimsel olmayan ama kesinlikle hakemli. :) Eğer bu davayı en iyi uygulama olarak tartışacak olsaydım, hiç kimsenin kullanamayacağı bir geçmişe sahip kod hareketlerinizi - dahil olmak üzere - karmaşasının mantıklı olmadığını söylemek isterim. Birisi kendi eğitim için veritabanı geçmişini okumak istiyorsa, Git size kapatacak; çalışma dalında olması için bir sebep yok. –

+0

Evet, biz de aynı sonuca vardık. Başkalarının aynı konuşmayı yaptığını bilmek güzel :) – roo

4

rake db:setup ve'u yalnızca (hiçbir zaman rake db:migrate) yeni bir veritabanını, bir üretim sunucusuna veya yeni bir geliştirme makinesine yüklemek için kullanıyorum. Bu komutlar, veritabanını yeniden oluşturmak için zaten schema.rb veya structure.sql'u kullanır.

Bu, schema.rb kopyasını gerçekten yapmak, yeni bir başlangıç ​​noktası olarak kullanmak ve tüm eski geçişleri silmek gerçekten çok kolay olduğunu söyledi.

Göçlerimi tarihi amaçlar için tutmayı tercih ediyorum, ancak bu bir zevk meselesidir.

İlgili konular