2011-09-29 12 views
5

Solo i binari di apprendimento, sono sulle migrazioni e tutto è iniziato in modo abbastanza logico finché non ho trovato qualcosa di strano nel codice;Rails 3 genera la migrazione - nessun metodo su o giù

rails generate migration AddRegionToSupplier 

Quanto sopra produce un file di migrazione con solo un metodo "def change" in esso.

Ho cercato su google e ho scoperto che questo è esattamente ciò che dovrebbe accadere;

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

mi sarei aspettato di generare un "def up" e "DEF down" il metodo, in modo che la migrazione potrebbe essere il rollback. Ho fatto qualcosa di sbagliato nella generazione o mi manca qualcosa di ovvio?

+1

you tl; dr'ed XD non ti preoccupare capita molto anche a me lol – corroded

risposta

16

Dal link you pasted:

Rails 3.1 rende le migrazioni più intelligente, fornendo un nuovo metodo change. Questo metodo è preferibile per la scrittura di migrazioni costruttive (aggiunta di colonne o tabelle ). La migrazione è in grado di migrare il database e di annullarlo quando si esegue il rollback della migrazione senza la necessità di scrivere in un metodo separato.

così sembra che non ci si deve preoccupare di avere un def self.down come Rails è ora abbastanza intelligente per sapere come rotolare indietro.

+1

Mi piace questa risposta. Semplice e conciso. :) In che modo Rails sa come invertire una migrazione se non ha un metodo down per gestirlo? Sono stati salvati alcuni dati aggiuntivi da qualche parte per tenere traccia di questi dati? – skcin7

Problemi correlati