2011-09-29 4 views
5

Acabo de aprender los raíles, estoy en las migraciones y todo comenzó bastante lógicamente hasta que pulsé algo extraño en el código;Los raíles 3 generan migración, sin método de subida o bajada

rails generate migration AddRegionToSupplier 

Lo anterior produce un archivo de migración con solo un método de "def change".

Busqué en Google esto y descubrí que esto es exactamente lo que se supone que ocurre;

http://guides.rubyonrails.org/migrations.html

lo que habría esperado que genere una "definición" y "def abajo" método, por lo que la migración podría ser revertido. ¿He hecho algo mal en la generación o me estoy perdiendo algo obvio?

+1

usted tl; dr'ed XD no se preocupe me pasa demasiado lol – corroded

Respuesta

16

Desde el link you pasted:

Rails 3.1 hace que las migraciones más inteligente, proporcionando un nuevo método change. Este método es preferido para escribir migraciones constructivas (agregando columnas columnas o tablas). La migración sabe cómo migrar su base de datos y la revierte cuando se retrotrae la migración sin la necesidad de escribir un método alternativo por separado.

Así que parece que usted no tiene que preocuparse de tener un def self.down como carriles es ahora lo suficientemente inteligente para saber cómo rodar de nuevo.

+1

Me gusta esta respuesta. Simple y conciso. :) ¿Cómo sabe Rails cómo invertir una migración si no tiene un método down para manejarla? ¿Se están guardando datos adicionales en algún lugar para realizar un seguimiento de estos datos? – skcin7

Cuestiones relacionadas