From 691ea4d504e51b3383fbe37ee0adbee7ad93a837 Mon Sep 17 00:00:00 2001 From: Brian John Date: Sun, 10 Jan 2021 15:50:36 -0600 Subject: [PATCH] Add `rails db:migrate` to Spring-enhanced commands I noticed recently that running `bin/rails db:migrate` on our app is much slower than `bin/rake db:migrate` and tracked that down to `db:migrate` not being a Spring-enhanced command. Given that many Rails developers run this command quite often, possibly more often than some of the other Spring-enhanced commands, it seemed to make sense to add it. --- CHANGELOG.md | 4 ++++ lib/spring/client/rails.rb | 4 ++-- lib/spring/commands/rails.rb | 17 ++++++++++++----- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c504ad5..e8e4cdb0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## Next Release +## 2.1.2 + +* Add `rails db:migrate` to Spring-enhanced commands + ## 2.1.1 * Avoid -I rubylibdir with default-gem bundler diff --git a/lib/spring/client/rails.rb b/lib/spring/client/rails.rb index 08fb8b08..708efd9b 100644 --- a/lib/spring/client/rails.rb +++ b/lib/spring/client/rails.rb @@ -3,7 +3,7 @@ module Spring module Client class Rails < Command - COMMANDS = Set.new %w(console runner generate destroy test) + COMMANDS = Set.new %w(console runner generate destroy test db:migrate) ALIASES = { "c" => "console", @@ -21,7 +21,7 @@ def call command_name = ALIASES[args[1]] || args[1] if COMMANDS.include?(command_name) - Run.call(["rails_#{command_name}", *args.drop(2)]) + Run.call(["rails_#{command_name.gsub(':', '_')}", *args.drop(2)]) else require "spring/configuration" ARGV.shift diff --git a/lib/spring/commands/rails.rb b/lib/spring/commands/rails.rb index f62fe6bc..7bc39b9d 100644 --- a/lib/spring/commands/rails.rb +++ b/lib/spring/commands/rails.rb @@ -33,6 +33,12 @@ def command_name end end + class RailsDbMigrate < Rails + def command_name + "db:migrate" + end + end + class RailsGenerate < Rails def command_name "generate" @@ -103,10 +109,11 @@ def command_name end end - Spring.register_command "rails_console", RailsConsole.new - Spring.register_command "rails_generate", RailsGenerate.new - Spring.register_command "rails_destroy", RailsDestroy.new - Spring.register_command "rails_runner", RailsRunner.new - Spring.register_command "rails_test", RailsTest.new + Spring.register_command "rails_console", RailsConsole.new + Spring.register_command "rails_db_migrate", RailsDbMigrate.new + Spring.register_command "rails_generate", RailsGenerate.new + Spring.register_command "rails_destroy", RailsDestroy.new + Spring.register_command "rails_runner", RailsRunner.new + Spring.register_command "rails_test", RailsTest.new end end