Pourquoi rake db: migrate: reset n’est pas répertorié dans rake -T?

Pourquoi certaines tâches de râteau ne sont-elles pas répertoriées par rake -T ? Comme db:migrate:reset ? Je peux l’exécuter sans problème, mais pourquoi n’y figure-t-il pas? Est-il possible d’obtenir une liste complète des tâches de rake?

 % rake -T
 (dans / home / zeus / projects / my_project)
 rake à propos de # List versions de tous les frameworks Rails et de l'environnement
 rake db: create # Crée la firebase database à partir de config / database.yml pour le Rails.env actuel (utilisez db: create: all pour créer tous les dbs dans la configuration)
 rake db: drop # Supprime la firebase database pour le Rails.env actuel (utilisez db: drop: all pour supprimer toutes les bases de données)
 rake db: fixtures: load # Charge les fixtures dans la firebase database de l'environnement actuel.
 rake db: migrate # Migrez la firebase database (options: VERSION = x, VERBOSE = false).
 rake db: migrer: status # Afficher le statut des migrations
 rake db: rollback # Ramène le schéma à la version précédente (spécifiez les étapes w / STEP = n).
 rake db: schema: dump # Créer un fichier db / schema.rb pouvant être utilisé de manière portable avec n'importe quelle firebase database prise en charge par AR
 rake db: schema: load # Charge un fichier schema.rb dans la firebase database
 rake db: seed # Charge les données de départ depuis db / seeds.rb
 rake db: setup # Crée la firebase database, charge le schéma et initialise avec les données de départ (utilisez db: reset pour supprimer également la firebase database)
 rake db: structure: dump # Dump de la structure de la firebase database dans un fichier SQL
 rake db: version # Récupère le numéro de version du schéma actuel
 rake doc: app # Génère des documents pour l'application - également disponible doc: rails, doc: guides, doc: plugins (options: TEMPLATE = / rdoc-template.rb, TITLE = "Titre personnalisé")
 rake erd # Génère un diagramme entité-relation basé sur vos modèles
 rake log: clear # tronque tous les fichiers * .log de log / à zéro octet
 rake middleware # Imprime votre stack de middleware Rack
 rake notes # Enumérer toutes les annotations (notes d'utilisation: optimiser,: fixme,: todo pour focus)
 rake notes: custom # Énumérer une annotation personnalisée, spécifier avec ANNOTATION = CUSTOM
 rake rails: template # Applique le template fourni par LOCATION = / path / to / template
 Rake Rails: mise à jour # Mettre à jour à la fois les configs et les public / javascripts de Rails (ou utilisez simplement update: javascripts ou update: configs)
 rake routes # Imprimer tous les itinéraires définis dans l'ordre de correspondance, avec les noms.
 rake secret # Génère une clé secrète cryptographiquement sécurisée (elle est généralement utilisée pour générer un secret pour les sessions de cookies).
 rake spec # Exécuter toutes les spécifications dans le répertoire spec (à l'exception des spécifications du plugin)
 Spécification de rake: acceptation # Exécuter les exemples de code dans spec / accept
 rake spec: controllers # Exécuter les exemples de code dans spec / controllers
 rake spec: helpers # Exécuter les exemples de code dans spec / helpers
 rake spec: lib # Exécuter les exemples de code dans spec / lib
 rake spec: mailers # Exécuter les exemples de code dans spec / mailers
 rake spec: models # Exécuter les exemples de code dans spec / models
 rake spec: rcov # Exécuter toutes les spécifications avec rcov
 Spécification de rake: Demandes # Exécuter les exemples de code dans les spécifications / requêtes
 Spécification de rake: routing # Exécuter les exemples de code dans spec / routing
 rake spec: views # Exécuter les exemples de code dans spec / views
 rake stats # Statistiques du code de rapport (KLOCs, etc.) de l'application
 rake test # Exécute le test: unités, test: fonctionnelles, test: intégration (également disponible: test: benchmark, test: profil, test: plugins)
 rake test: recent # Exécuter des tests pour recenttest: préparer / tester les modifications récentes
 test de râteau: non validé # Exécuter des tests pour un test non validé: préparer / tester les modifications depuis la dernière vérification (uniquement Subversion et Git)
 temps de rake: zones: all # Affiche tous les fuseaux horaires, également disponibles: time: zones: us, time: zones: local - filtre avec le paramètre OFFSET, par exemple OFFSET = -6
 rake tmp: clear # Effacer les fichiers de session, de cache et de socket de tmp / (étroit avec tmp: sessions: clear, tmp: cache: clear, tmp: sockets: clear)
 rake tmp: create # Crée des répertoires tmp pour les sessions, le cache, les sockets et les pids

Les tâches sans description ne seront pas affichées.

EDIT: On dirait que DHH a supprimé la description de Rails 3 pour quelques tâches afin de réduire le bruit. rake db: setup a une note sur db: reset si.

http://github.com/rails/rails/commit/983815632cc1d316c7c803a47be28f1abe6698fb

Vous pouvez également utiliser rake db -T -A pour afficher toutes les tâches, même celles qui ne sont pas commentées. Pour référence, ces commutateurs effectuent les opérations suivantes:

 -T, --tasks [PATTERN] Display the tasks (matching optional PATTERN) with descriptions, then exit. -A, --all Show all tasks, even uncommented ones (in combination with -T or -D) 

Vous pouvez utiliser rake -P | grep rake rake -P | grep rake pour afficher les noms de toutes les tâches Rake.

Comme suite à la réponse de Thomas Obermüller, puisque l’option -T prend un argument positionnel, pour obtenir uniquement les tâches d’espace de noms ‘db’ (au moins avec rake 10.0.3), vous devez faire: rake -T db -A

Sur ce WIKI – Ruby on Rails / ActiveRecord / Migrations, vous pouvez trouver plus d’informations.

Pour l’utilisateur Windows, vous faites cette rake -P | trouver “rake”