Komisyon db kullanarak sadece bir adım nasıl geri alınır: migrate


197

db/migrateKlasöre taşıma dosyaları ekledikten ve çalıştırdıktan rake db:migratesonra, önceki adıma geri dönmek istiyorum, bunu kullanmak VERSION=niçin doğru yol olduğunu düşünüyorum, ancak kullanılacak n'nin doğru değerini bilmiyorum. Mevcut n değerini kontrol etmek için herhangi bir komut var mı?

Herkes nasıl kullanılacağı hakkında tam talimatlar verebilir harika olurdu rake db:migrate.

Yanıtlar:


358

Yeni başlayanlar için

rake db:rollback seni bir adım geri götürecek

sonra

rake db:rollback STEP=n

Size geri döner ngöçler n, geri almak istediğiniz son göçler sayısıdır.

Daha fazla referans burada .


95

En son taşımayı geri al:

rake db:rollback

nEn son taşıma işlemlerini geri alma :

rake db:rollback STEP=n

Rails için Rails taşıma görevlerinin kullanımına ilişkin tam talimatları, taşıma işlemleri için Rails Kılavuzunda bulabilirsiniz .


İşte biraz daha:

  • rake db:migrate - Henüz gerçekleştirilmemiş tüm taşıma işlemlerini gerçekleştirin
  • rake db:migrate VERSION=20080906120000 - Verilen sürüme ulaşmak için gerekli tüm taşıma işlemlerini (yukarı veya aşağı) çalıştırın
  • rake db:migrate RAILS_ENV=test - Verilen ortamda taşıma işlemleri gerçekleştirme
  • rake db:migrate:redo - Bir taşımayı geri al ve tekrar çalıştır
  • rake db:migrate:redo STEP=n- Son ntaşıma işlemlerini geri al ve tekrar çalıştır
  • rake db:migrate:up VERSION=20080906120000- upBelirtilen taşıma yöntemini çalıştırın
  • rake db:migrate:down VERSION=20080906120000- downBelirtilen taşıma yöntemini çalıştırın

Ayrıca, bir geçişin sürüm numarasını nereden alacağınız hakkındaki sorunuzu yanıtlamak için:

Sürüm, geçişin dosya adındaki sayısal önektir. Örneğin, 20080906120000 sürümüne geçmek için

$ rake db:migrate VERSION=20080906120000

( Ray Kılavuzlarında Çalışan Göçlerden )


2
Komisyon db: geri alma en son geçişi geri almak için çalışmadığında, komisyon db kullanmak zorunda kaldım: mi göç VERSİYONU = <ikinci son sürüm tarihi> ve işe yaradı
Omni

8

En iyi yol, aşağı veya yukarı kullanarak özel geçişi tekrar çalıştırmaktır (raylarda 4).

raylar db: göç: yukarı VERSION = zaman damgası

Şimdi zaman damgasını nasıl alacağınız. Bu yola git

/ Db / geçirmek

Geri almak istediğiniz taşıma dosyasını belirleyin. O dosya adından zaman damgasını tıklayın.


Bu soruya cevap vermese de, gerçekten en iyi yoldur. Adım adım geri gitmek, özellikle bir gruptaki yazılım üzerinde çalışırken hatalara neden olabilir.
çelik

5

Sürüm buysa, şunu 20150616132425kullanın:

rails db:migrate:down VERSION=20150616132425

1

Diğer kullanıcılar size nasıl geri döneceğinizi zaten yanıtladı, ancak bir taşıma sürüm numarasını nasıl tanımlayabileceğinizi de sordunuz.

  • rake db:migrate:status taşıma sürümünüzün, adınızın ve durumunuzun bir listesini verir (yukarı veya aşağı)
  • Dosya adında bir zaman damgası içeren taşıma dosyasını, sürüm numarasını da bulabilirsiniz. Taşıma işlemleri klasörde bulunur:/db/migrate

Bu arada status komutunu çalıştırırsanız aşağıdaki gibi satırlar görebilirsiniz: ********** NO FILE ********** Kullandığınız takdirde bu şubeniz mevcut şubenizde mevcut değil budala.
BjarneD
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.