web-dev-qa-db-fra.com

Comment revenir en arrière en une étape en utilisant rake db: migrate

Après avoir ajouté des fichiers de migration dans le dossier db/migrate et exécuté rake db:migrate, je souhaite revenir à l’étape précédente. Je pense que l’utilisation de VERSION=n est la bonne façon de procéder, mais je ne connais pas la valeur correcte de n à utiliser. Existe-t-il une commande pour vérifier la valeur n actuelle?

Ce serait formidable si quelqu'un pouvait fournir des instructions complètes sur l'utilisation de rake db:migrate.

171
mko

Pour commencer

rake db:rollback vous fera revenir en arrière

puis 

rake db:rollback STEP=n

Vous annulerez les migrations nn correspond au nombre de migrations récentes que vous souhaitez annuler. 

Plus de références ici .

310
rwilliams

Annulez la dernière migration:

rake db:rollback

Annulez les dernières migrations n:

rake db:rollback STEP=n

Vous trouverez des instructions complètes sur l'utilisation des tâches de migration Rails pour rake dans le Guide Rails pour l'exécution de migrations .


En voici d'autres:

  • rake db:migrate - Exécuter toutes les migrations qui n'ont pas encore été exécutées
  • rake db:migrate VERSION=20080906120000 - Exécute toutes les migrations nécessaires (vers le haut ou vers le bas) pour accéder à la version donnée
  • rake db:migrate Rails_ENV=test - Exécuter les migrations dans l'environnement donné
  • rake db:migrate:redo - Annule une migration et l'exécute à nouveau
  • rake db:migrate:redo STEP=n - Annule les dernières migrations n et les réexécute
  • rake db:migrate:up VERSION=20080906120000 - Exécuter la méthode up pour la migration donnée
  • rake db:migrate:down VERSION=20080906120000 - Exécuter la méthode down pour la migration donnée

Et pour répondre à votre question sur l’obtention du numéro de version d’une migration:

La version est le préfixe numérique du nom de fichier de la migration. Pour Par exemple, pour migrer vers la version 20080906120000, exécutez

$ rake db:migrate VERSION=20080906120000

(De Running Migrations dans les guides Rails)

78
Ajedi32

Le meilleur moyen est d'exécuter à nouveau une migration particulière en utilisant down ou up (dans Rails 4. Cela change)

Rails db: migrate: up VERSION = horodatage

Maintenant, comment vous obtenez l'horodatage . Allez sur ce chemin

/ db/migrate

Identifiez le fichier de migration que vous souhaitez rétablir. Sélectionnez le timestamp à partir de ce nom de fichier.

7
Hemali

D'autres personnes vous ont déjà expliqué comment effectuer une restauration, mais vous avez également demandé comment identifier le numéro de version d'une migration.

  • rake db:migrate:status donne une liste de la version, du nom et du statut de votre migration (en haut ou en bas)
  • Vous pouvez également trouver le fichier de migration, qui contient un horodatage dans le nom du fichier, qui correspond au numéro de version. Les migrations se trouvent dans le dossier: /db/migrate
1
Bjarne Dideriksen

Si la version est 20150616132425, utilisez:

Rails db:migrate:down VERSION=20150616132425
0
Đoàn Nghĩa