10

Bu yüzden bir yıl boyunca bu web uygulaması üzerinde çalışıyorum ve tek bir geçişe şema derlemek istiyorum, bu şekilde metin editörüm daha hızlı yükleniyor, git çalışma dizini çok dağınık değil.Göçlerimi Rails'de temizlemenin iyi bir yolu nedir?

Arama, daha hızlı olacaktır.

Tüm yapılandırma/db'm 4000px uzunluğunda olmayacaktır.

+2

Bu ayrıca, Rails'deki göçlerin iyileştirilmesi için bir öneri getirdiğini düşünüyorum. Gerçekten, komisyonu kim yapar: rollback STEP = 10 ?! Çalışan bir şemaya sahip olduğumuzdan, neden geçişlerimizi projemizde tutmamız gerekiyor? Belki bir komisyon db var: temiz? – fivetwentysix

cevap

3

Gitmenin tek yolu boş bir veritabanı almak ve tüm geçişleri çalıştırmaktır. Artık bir şablona kaydedebileceğiniz tüm şablon verileri var. Yaml artı şema, daha önce var olan tüm geçişlerinizi çalıştırmadan DB'yi geri getirmek için yeterli olmalıdır. Bununla birlikte, diğer cevaplar bunu yapmak için mevcut bir araç veya mücevherden bahsetmelidir.

+0

Daha önce belirttiğiniz gibi daha özel komutlar veya mücevherler için umuyordum :-) – fivetwentysix

+10

Evet, sadece kopyala yapıştır * db/schema.rb ** içeriği yeni geçişe yeterli – Anatoly

7

Taşıma işlemlerinizi sonsuza kadar tutmanıza gerek kalmaz, artık ihtiyacınız olmadığından emin olduğunuz anda bunları silmekte özgürsünüz. Sadece db/migrate/ dizininize gidin ve birkaç aydan daha eski olan geçişleri silin.

Silmek istediğiniz tüm geçişler her yerde (ör. Geliştirme ve üretim) uygulandığı sürece, artık onlara ihtiyacınız yoktur (geriye doğru gitmek istemediğiniz sürece). Gerçekten, geçişler kalıcı dosyalar anlamına gelmez, sizi A'dan B'ye götürecekler ve sonra sadece bagajlar.

10

Sunucularınızı taşıdıktan sonra geçiş dosyalarını kaldırın. Yeni bir dağıtımla başlamak isterseniz, rake db:schema:load veya rake db:setup'u çalıştırın. Tüm geçişlerinizi here açıklandığı gibi yeniden çalıştırmamanız gerekir.

2

cevapların hiçbiri söyleyince bu işi yapar mücevher Verilen: Temelde belirttiğiniz tarihe kadar sıfırdan göçler yeniden çalıştırır ve sonra bir ilk göç içine çıkan db/schema.rb yükler https://github.com/jalkoby/squasher

eski olanların yerini alır. rake db:migrate:status çalıştırırken Aynı zamanda temizleme schema_migrations tablo o

up  <timestamp> ********** NO FILE ********** 

girişlerini alamadım böylece.

İlgili konular