2013-07-06 2 views

ответ

11

Метод up должен сопровождаться методом down, который может использоваться для отмены изменений миграции. Например, если вы написали пример в вашем вопросе, используя вверх и вниз, вам потребуется следующий код:

class CreateTweets < ActiveRecord::Migration 
    def up 
    create_table :tweets do |t| 
     t.string :status 
     t.integer :zombie_id 

     t.timestamps 
    end 
    end 

    def down 
    drop_table :tweets 
    end 
end 

change метод, с другой стороны, может быть отменено автоматически Rails, так что нет необходимости вручную создайте метод down.

change было ввести, чтобы заменить up и down, потому что большинство down методы легко могут быть предсказаны на основе метода up (в приведенном выше примере drop_table явно противоположен create_table).

В ситуациях, когда обратная операция не может быть получена автоматически, вы можете использовать либо up и down методы, или вызвать метод reversible из метода change.

Для получения дополнительной информации см. sections 3.6 - 3.7 of the Rails migration guide.

Смежные вопросы