R.Reddington

WFN Üye
Konular
562
Mesajlar
562
Çözüm
0
Ticaret Puanı
0
Üyelik
24 Gün
Konum
Kastamonu
Web Sitesi
Var
Alanı
Sosyal Backlink
1/1
Konu sahibi
En son uygulanan migrasyonu geri almak için uygulamanın kök dizininde bin/rails db:rollback çalıştırın. Birden fazla migrasyonu geri almak için STEP sayısını belirtin; belirli bir migrasyonu hedeflemek için dosya adındaki zaman damgasını VERSION olarak kullanın. İşlem veritabanı yapısını veya veriyi değiştirebilir; özellikle üretim ortamında önce yedek alın ve komutu doğru ortamda çalıştırdığınızdan emin olun.

Geri alma yöntemini seçin​


Rails, migrasyonların uygulanma durumunu veritabanında izler. Geri alma komutu migrasyon dosyasını silmez; ilgili değişiklikleri migrasyonun ters işlemleriyle geri çevirmeye ve uygulanma kaydını kaldırmaya çalışır. Hangi komutun uygun olduğu, geri alınacak migrasyonun konumuna bağlıdır.
AmaçKomutNe yapar?
Son migrasyonu geri almakbin/rails db:rollbackEn son uygulanmış migrasyonu geri çevirir.
Son birkaç migrasyonu geri almakbin/rails db:rollback STEP=3Son üç uygulanmış migrasyonu sırayla geri çevirir.
Belirli bir migrasyonu geri almakbin/rails db:migrate:down VERSION=20241026123456Belirtilen zaman damgalı migrasyonu geri almaya çalışır.
VERSION yerine örnekteki sayıyı değil, kendi migrasyon dosyanızın başındaki zaman damgasını yazın. Örneğin dosya db/migrate/20241026123456_add_status_to_orders.rb ise sürüm değeri 20241026123456 olur. Belirli bir migrasyonu geri almak, daha sonra uygulanmış başka migrasyonlarla bağımlılık çakışmasına yol açabilir; böyle bir durumda önce son migrasyonları uygun sırayla geri almanız gerekebilir.

Komutu çalıştırın ve sonucu doğrulayın​


Önce uygulama dizinine geçin ve migrasyon durumunu inceleyin:

Bash:
bin/rails db:migrate:status

Çıktı, her migrasyonun uygulanmış mı yoksa bekliyor mu olduğunu gösterir. Geri almak istediğiniz migrasyonun bu veritabanında uygulanmış olduğunu ve hedef ortamın doğru seçildiğini kontrol edin. Ardından, örneğin yalnızca son migrasyonu geri almak için şu komutu çalıştırın:

Bash:
bin/rails db:rollback

Birden fazla adımı geri alacaksanız STEP=3 gibi bir değer ekleyin. Komut başarılı biterse Rails yapılan geri alma işlemini bildirir; ardından bin/rails db:migrate:status ile ilgili migrasyonun durumunun değiştiğini kontrol edin. Veritabanı yapısının beklendiği gibi olduğunu ve uygulamanın bu yapıyla çalışabildiğini de doğrulayın. Durum çıktısındaki değişiklik, işlemin migrasyon kaydına yansıdığını gösterir; uygulama verisinin veya işlevlerinin bütünüyle doğru olduğunu tek başına kanıtlamaz.

Üretim ortamında çalıştırmanız gerekiyorsa ortamı komutta açıkça belirtin; örneğin RAILS_ENV=production bin/rails db:rollback. Önce doğru veritabanına bağlandığınızı doğrulayın ve yedeğinizin kullanılabilir olduğundan emin olun. Geri alma sırasında kaybolan verinin yedek olmadan kurtarılabileceğini varsaymayın.

Geri alma başarısız olursa​


Rails, migrasyonun tersine çevrilemediğini bildirirse migrasyondaki bazı işlemler otomatik olarak geri alınamıyor olabilir. Örneğin veri dönüştüren bir işlem, eski hâlin nasıl kurulacağını açıkça belirtmeyi gerektirebilir. Hata mesajını ve migrasyon dosyasını inceleyin; gerekiyorsa migrasyonda up ve down yöntemlerini ya da reversible bloğunu tanımlayarak geri alma davranışını belirtin. Önce test veya geliştirme veritabanında doğrulamadan üretimde denemeyin.

Komut hata vermeden çalıştığı hâlde beklediğiniz sonuç oluşmadıysa önce doğru ortamı ve veritabanını, sonra db:migrate:status çıktısını kontrol edin. Migrasyon dosyasını silmek ya da elle değiştirmek, veritabanındaki migrasyon geçmişini kendiliğinden düzeltmez. Uygulanmış migrasyon dosyasını değiştirmek yerine, şema veya veri için gereken düzeltmeyi yeni bir migrasyonla yapmak genellikle daha güvenli bir yoldur.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Foruma git ?

Bu konuyu görüntüleyen kullanıcılar

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic