2013-02-07 3 views

Répondre

10

self.up et up contient le code qui est exécuté par les migrations lorsque vous effectuez rake db:migrate. self.up est une ancienne version de up. Je ne suis pas sûr quand ils ont présenté cela, mais jusqu'à 3.0, ils utilisaient self.up.

self.down et down doit contenir le code qui inverse l'effet des méthodes up. donc si vous avez créé une table sur up, vous devez supprimer cette table sur down. Ces méthodes sont appelées lors de l'exécution rake db:rollback.

Il existe en fait une nouvelle méthode sur les migrations appelée change qui est généralement utilisée s'il est facile pour les rails de déterminer le contraire de ce que vous faites, par exemple créer des tables.

+0

meilleure explication! Je vous remercie! –

3

def self.up est une méthode de classe (vous pouvez l'envoyer à la classe: Klass.up), def up est une méthode normale (vous pouvez l'envoyer à un objet). Pareil pour bas.