J'ai le fichier de migration suivant : db\migrate\20100905201547_create_blocks.rb
.
Comment puis-je annuler spécifiquement ce fichier de migration ?
rake db:rollback STEP=1
C'est un moyen de le faire, si la migration que vous voulez annuler est la dernière appliquée. Vous pouvez remplacer 1 par le nombre de migrations que vous souhaitez annuler.
Par exemple :
rake db:rollback STEP=5
Annulera également toutes les migrations qui ont eu lieu plus tard (4, 3, 2 et aussi 1).
Pour annuler toutes les migrations jusqu'à (et y compris) une migration cible, utilisez : (Cette commande corrigée a été ajoutée APRÈS tous les commentaires signalant l'erreur dans le post original)
rake db:migrate VERSION=20100905201547
Pour annuler UNE SEULE migration spécifique (sans ordre), utilisez :
rake db:migrate:down VERSION=20100905201547
Notez que cela n'annulera PAS les migrations intermédiaires -- seulement celle qui est listée. Si ce n'est pas ce que vous vouliez, vous pouvez lancer sans risque rake db:migrate
et il ne ré-exécutera que celle-là, sautant toutes les autres qui n'ont pas été précédemment annulées.
rake db:migrate:down VERSION=20100905201547
annulera le fichier en question.
Pour trouver la version de toutes les migrations, vous pouvez utiliser cette commande :
rake db:migrate:status
Ou, simplement le préfixe du nom de fichier de la migration est la version que vous devez rétablir.
Voir [l'entrée du guide Ruby on Rails] (http://guides.rubyonrails.org/migrations.html#running-specific-migrations) sur les migrations.
Vous pouvez annuler votre migration en utilisant rake db:rollback
avec différentes options. La syntaxe sera différente en fonction de vos besoins.
Si vous souhaitez annuler uniquement la dernière migration, vous pouvez utiliser l'une des options suivantes
rake db:rollback
ou
rake db:rollback STEP=1
Si vous voulez annuler un certain nombre de migrations à la fois, il vous suffit de passer un argument :
rake db:rollback STEP=n
où n
est le nombre de migrations à annuler, en comptant à partir de la dernière migration.
Si vous voulez revenir à une migration spécifique, vous devez indiquer la version de la migration dans la ligne suivante :
rake db:migrate:down VERSION=xxxxx
où xxxxx est le numéro de version de la migration.