rake -T
rake about # List versions of all Rails frameworks and the environment rake assets:clean # Remove old compiled assets rake assets:clobber # Remove compiled assets rake assets:environment # Load asset compile environment rake assets:precompile # Compile all the assets named in config.assets.precompile rake db:create # Create the database from DATABASE_URL or 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 using DATABASE_URL or the current Rails.env (use db:drop:all to drop all databases)
$ rails g task setup hello_world
namespace :setup do desc "TODO" task :hello_world => :environment do end end
namespace :setup
rake db:migrate
, where db
also a namespace. desc "TODO"
rake -T
command. task :hello_world => :environment
:hello_world
is the name of the task.=> :environment
- dependencies. Before starting the main task, Rake starts all dependent tasks. In this case, the rake environment instruction will be launched, which is included in the RoR assembly and allows you to work with environment-dependent operations, for example, using a database.puts 'Hello from rake!'
and run it $ rake setup:hello_world Hello from rake!
invoke
method, for example: Rake::Task['db:drop'].invoke
task :drop_database do puts "*** Drop old database ***" Rake::Task['db:drop'].invoke end task :create_database do puts "*** Create new database ***" Rake::Task['db:create'].invoke end task :migrate_database do puts "*** Do migrations ***" Rake::Task['db:migrate'].invoke end task :seed_database do puts "*** Seeding database ***" Rake::Task['db:seed'].invoke end task :create_test_database do puts "*** Setup test database ***" Rake::Task['db:test:prepare'].invoke end
User
model, in which there is a method for adding an admin role. The file seeds.rb
also contains an entry for creating a user in the database. I need to make this created user immediately task :set_admin_user do puts "*** Add admin role to first user ***" User.first.become_admin! end
desc 'Configure the application for development.' task :setup => :environment do Rake::Task['setup:drop_database'].invoke Rake::Task['setup:create_database'].invoke Rake::Task['setup:migrate_database'].invoke Rake::Task['setup:seed_database'].invoke Rake::Task['setup:set_admin_user'].invoke Rake::Task['setup:create_test_database'].invoke end
$ rake setup *** Drop old database *** *** Create new database *** *** Do migrations *** ... ... *** Seeding database *** *** Add admin role to first user *** *** Setup test database ***
Source: https://habr.com/ru/post/180071/
All Articles