有没有更快的方法来编写这个rake命令 - rake db:drop db:create db:migrate db:seed

Cat*_*ish 6 rake ruby-on-rails ruby-on-rails-3

每次我更改我的架构或新的迁移文件时,我都会运行以下命令:

rake db:drop db:create db:migrate db:seed
Run Code Online (Sandbox Code Playgroud)

是否有预先建立的等效方法来做到这一点?

我从我所读过的内容中想到的rake db:reset并不完全相同,但我可能是错的.

hou*_*se9 6

你可以为它创建一个自定义rake任务 - lib/tasks/db_rebuild_all.rake

namespace :db_tasks do
  desc "Rebuild database"
  task :rebuild, [] => :environment do
    raise "Not allowed to run on production" if Rails.env.production?

    Rake::Task['db:drop'].execute
    Rake::Task['db:create'].execute
    Rake::Task['db:migrate'].execute
    Rake::Task['db:seed'].execute
  end
end
Run Code Online (Sandbox Code Playgroud)

然后跑 bundle exec rake db_tasks:rebuild