676 votes

Différence entre rake db:migrate db:reset et db:schema:load

La différence entre rake db:migrate y rake db:reset est assez clair pour moi. La chose que je ne comprends pas est comment rake db:schema:load est différent des deux précédents.

Juste pour être sûr que je suis sur la même longueur d'onde :

  • rake db:migrate - Exécute les migrations qui n'ont pas encore été exécutées.
  • rake db:reset - Efface la base de données (vraisemblablement en faisant un rake db:drop + rake db:create + rake db:migrate ) et exécute la migration sur une base de données fraîche.

10 votes

Fait rake --tasks Aide ?

0 votes

Vous devriez consulter ce blog. jacopretorius.net/2014/02/

0 votes

Votre compréhension de rake db:migrate est correcte, mais votre compréhension de rake db:reset est fausse. Voir la réponse la plus haute, de Moritz.

0voto

Douglas G. Allen Points 359

Vous pouvez simplement regarder dans les tâches de l'Active Record Rake, car je pense que c'est là qu'elles se trouvent dans ce fichier. https://github.com/rails/rails/blob/fe1f4b2ad56f010a4e9b93d547d63a15953d9dc2/activerecord/lib/active_record/tasks/database_tasks.rb

Ce qu'ils font, c'est votre question, non ?

Cela dépend de leur origine et il s'agit juste d'un exemple pour montrer qu'elles varient en fonction de la tâche. Ici, nous avons un autre fichier rempli de tâches.

https://github.com/rails/rails/blob/fe1f4b2ad56f010a4e9b93d547d63a15953d9dc2/activerecord/Rakefile

qui a ces tâches.

namespace :db do
  task create: ["db:mysql:build", "db:postgresql:build"]
  task drop: ["db:mysql:drop", "db:postgresql:drop"]
end

Cela ne répondra peut-être pas à votre question, mais pourrait vous donner une idée de ce qu'il faut faire et regarder les sources, en particulier les fichiers rake et les tâches. Bien qu'ils fassent un bon travail pour vous aider à utiliser rails, ils ne documentent pas toujours très bien le code. Nous pouvons tous vous aider si nous savons ce qu'il est censé faire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X