rake db:migrate
komutunu çalıştırdığınızda, db/migrate klasöründe bulunan schema_migrations
tablosu ve geçiş dosyalarını karşılaştırır. Yürütülmeyen tüm geçişler daha sonra MigrationClass#up
numaralı telefonu alır.
Kodunuzun zaten yayınlandığı ve/veya geçişler başka kullanıcılar tarafından çalıştırıldığı noktadan başlayarak, geçişlerinizin zaman damgalarını/adlarını değiştirmek, işlenemeyen geçiş yordamına neden olabilir (schema_migrations
değişmiş zaman damgasıyla geçişi yeni olarak ele alacağından, işlenmemiş biri ve "tekrar" işlemeye çalışın. Bunun olası bir çözümü, bir süreliğine up
yönteminin içeriğini yorumlamak ve geçişler yapıldıktan sonra geri almak olacaktır. Eğlence için, schema_migrations
tablosunu doğrudan db konsolunuzdan da (gerekli kayıtları ekleyerek veya kaldırarak) değiştirebilirsiniz. Her iki şekilde de olsa bir hack gibi kokuyor.
O zamana kadar ... Her şey kusursuz çalışmalı.