2010-10-17 1 views
71

Warum werden einige Rake-Tasks nicht von rake -T aufgelistet? Wie db:migrate:reset? Ich kann es problemlos ausführen, aber warum ist es dort nicht aufgeführt? Gibt es eine Möglichkeit, eine vollständige Liste der Rake-Aufgaben zu erhalten?Warum ist Rake db: migrate: reset nicht in Rake-T aufgeführt?

 
% rake -T 
(in /home/zeus/projects/my_project) 
rake about    # List versions of all Rails frameworks and the environment 
rake db:create   # Create the database from config/database.yml for the current Rails.env (use db:create:all to create all dbs in the config) 
rake db:drop   # Drops the database for the current Rails.env (use db:drop:all to drop all databases) 
rake db:fixtures:load # Load fixtures into the current environment's database. 
rake db:migrate   # Migrate the database (options: VERSION=x, VERBOSE=false). 
rake db:migrate:status # Display status of migrations 
rake db:rollback  # Rolls the schema back to the previous version (specify steps w/ STEP=n). 
rake db:schema:dump  # Create a db/schema.rb file that can be portably used against any DB supported by AR 
rake db:schema:load  # Load a schema.rb file into the database 
rake db:seed   # Load the seed data from db/seeds.rb 
rake db:setup   # Create the database, load the schema, and initialize with the seed data (use db:reset to also drop the db first) 
rake db:structure:dump # Dump the database structure to an SQL file 
rake db:version   # Retrieves the current schema version number 
rake doc:app   # Generate docs for the app -- also availble doc:rails, doc:guides, doc:plugins (options: TEMPLATE=/rdoc-template.rb, TITLE="Custom Title") 
rake erd    # Generate an Entity-Relationship Diagram based on your models 
rake log:clear   # Truncates all *.log files in log/ to zero bytes 
rake middleware   # Prints out your Rack middleware stack 
rake notes    # Enumerate all annotations (use notes:optimize, :fixme, :todo for focus) 
rake notes:custom  # Enumerate a custom annotation, specify with ANNOTATION=CUSTOM 
rake rails:template  # Applies the template supplied by LOCATION=/path/to/template 
rake rails:update  # Update both configs and public/javascripts from Rails (or use just update:javascripts or update:configs) 
rake routes    # Print out all defined routes in match order, with names. 
rake secret    # Generate a crytographically secure secret key (this is typically used to generate a secret for cookie sessions). 
rake spec    # Run all specs in spec directory (excluding plugin specs) 
rake spec:acceptance # Run the code examples in spec/acceptance 
rake spec:controllers # Run the code examples in spec/controllers 
rake spec:helpers  # Run the code examples in spec/helpers 
rake spec:lib   # Run the code examples in spec/lib 
rake spec:mailers  # Run the code examples in spec/mailers 
rake spec:models  # Run the code examples in spec/models 
rake spec:rcov   # Run all specs with rcov 
rake spec:requests  # Run the code examples in spec/requests 
rake spec:routing  # Run the code examples in spec/routing 
rake spec:views   # Run the code examples in spec/views 
rake stats    # Report code statistics (KLOCs, etc) from the application 
rake test    # Runs test:units, test:functionals, test:integration together (also available: test:benchmark, test:profile, test:plugins) 
rake test:recent  # Run tests for recenttest:prepare/Test recent changes 
rake test:uncommitted # Run tests for uncommittedtest:prepare/Test changes since last checkin (only Subversion and Git) 
rake time:zones:all  # Displays all time zones, also available: time:zones:us, time:zones:local -- filter with OFFSET parameter, e.g., OFFSET=-6 
rake tmp:clear   # Clear session, cache, and socket files from tmp/ (narrow w/ tmp:sessions:clear, tmp:cache:clear, tmp:sockets:clear) 
rake tmp:create   # Creates tmp directories for sessions, cache, sockets, and pids 
+0

wenn ich Rake-T laufen, zeigt es sich ... welche Schienen laufen Sie? – thatmiddleway

+0

Ich verwende Schienen 3.0.1. Auf zwei verschiedenen Systemen mit zwei verschiedenen Projekten. Es wird nicht auf beiden Systemen angezeigt (siehe vollständige Ausgabe im bearbeiteten Post). – Zardoz

+0

Überprüfen Sie meine aktualisierte Antwort. –

Antwort

79

Aufgaben, die keine Beschreibung haben, werden nicht angezeigt.

EDIT: Sieht aus wie DHH die Beschreibung von Rails 3 für ein paar Aufgaben entfernt, um "Lärm zu reduzieren". Rake db: setup hat eine Notiz über db: reset obwohl.

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

+33

Als jemand, der Rails lernt, habe ich viel Zeit damit verschwendet, eine gute, klare Dokumentation für die Rake-Aufgaben zu finden, die sich auf die Datenbankmigration beziehen. –

39

Sie können rake -P | grep rake verwenden die Namen aller Rake Aufgaben zu zeigen.

+0

Genau das habe ich gebraucht. Ich habe dies meinem bash_profile mit dem Alias ​​"raket" hinzugefügt: # Zeigt alle verfügbaren Rake-Aufgaben an, einschließlich derer, die keine Beschreibungen haben. alias raket = "Rake -P | Grep Rake" Funktioniert super. Vielen Dank! –

61

Sie können auch rake db -T -A verwenden, um alle Aufgaben anzuzeigen, auch unkommentierte Aufgaben. Als Referenz sind diese Schalter Sie folgendermaßen vorgehen:

-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) 
+8

Dies sollte die akzeptierte Antwort sein. –

+3

Beachten Sie, dass die Option -A (oder --all) in Rake 10 hinzugefügt wurde. – slothbear

+0

'Rake -T -A 'zeigt alle Aufgaben. 'rake -T d db -A 'zeigt alle Tasks, die' db' im Tasknamen enthalten (beachten Sie die Position von 'db' ** nach **' -T'). –

1

für Windows-Benutzer, Sie tun, um diese Rake -P | finden "Rake"

7

Als Antwort auf die Antwort von Thomas Obermüller, da das Flag-T ein Positionsargument benötigt, um nur die Namespace-Tasks 'db' zu erhalten (zumindest mit Rake 10.0.3) müssen Sie tun : rake -T db -A