aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2017-04-27 10:21:15 -0700
committerRafael Mendonça França <rafaelmfranca@gmail.com>2017-04-27 10:21:28 -0700
commit15a4d3c383e6120bb0670fe2f9f07f72a5825027 (patch)
tree10ad838edca3ebb8a102592b7d00c93940857ad7
parent2064c61f4b1f52dfe20bbe544db34c9fff1930b3 (diff)
downloadrails-15a4d3c383e6120bb0670fe2f9f07f72a5825027.tar.gz
rails-15a4d3c383e6120bb0670fe2f9f07f72a5825027.tar.bz2
rails-15a4d3c383e6120bb0670fe2f9f07f72a5825027.zip
Also raise error when VERSION is nil
Fix #28905
-rw-r--r--activerecord/lib/active_record/railties/databases.rake4
-rw-r--r--activerecord/test/cases/tasks/database_tasks_test.rb3
-rw-r--r--railties/test/application/rake/migrations_test.rb6
3 files changed, 10 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/railties/databases.rake b/activerecord/lib/active_record/railties/databases.rake
index f3e2df8786..711099e9e1 100644
--- a/activerecord/lib/active_record/railties/databases.rake
+++ b/activerecord/lib/active_record/railties/databases.rake
@@ -93,7 +93,7 @@ db_namespace = namespace :db do
# desc 'Runs the "up" for a given migration VERSION.'
task up: [:environment, :load_config] do
- raise "VERSION is required" if ENV["VERSION"] && ENV["VERSION"].empty?
+ raise "VERSION is required" if !ENV["VERSION"] || ENV["VERSION"].empty?
version = ENV["VERSION"] ? ENV["VERSION"].to_i : nil
ActiveRecord::Migrator.run(:up, ActiveRecord::Tasks::DatabaseTasks.migrations_paths, version)
@@ -102,7 +102,7 @@ db_namespace = namespace :db do
# desc 'Runs the "down" for a given migration VERSION.'
task down: [:environment, :load_config] do
- raise "VERSION is required - To go down one migration, use db:rollback" if ENV["VERSION"] && ENV["VERSION"].empty?
+ raise "VERSION is required - To go down one migration, use db:rollback" if !ENV["VERSION"] || ENV["VERSION"].empty?
version = ENV["VERSION"] ? ENV["VERSION"].to_i : nil
ActiveRecord::Migrator.run(:down, ActiveRecord::Tasks::DatabaseTasks.migrations_paths, version)
db_namespace["_dump"].invoke
diff --git a/activerecord/test/cases/tasks/database_tasks_test.rb b/activerecord/test/cases/tasks/database_tasks_test.rb
index b4983624ba..c47c97e9d9 100644
--- a/activerecord/test/cases/tasks/database_tasks_test.rb
+++ b/activerecord/test/cases/tasks/database_tasks_test.rb
@@ -368,7 +368,8 @@ module ActiveRecord
def test_migrate_raise_error_on_empty_version
version = ENV["VERSION"]
ENV["VERSION"] = ""
- assert_raise(RuntimeError, "Empty VERSION provided") { ActiveRecord::Tasks::DatabaseTasks.migrate }
+ e = assert_raise(RuntimeError) { ActiveRecord::Tasks::DatabaseTasks.migrate }
+ assert_equal "Empty VERSION provided", e.message
ensure
ENV["VERSION"] = version
end
diff --git a/railties/test/application/rake/migrations_test.rb b/railties/test/application/rake/migrations_test.rb
index 2c9770e147..51dfe2ef98 100644
--- a/railties/test/application/rake/migrations_test.rb
+++ b/railties/test/application/rake/migrations_test.rb
@@ -48,8 +48,14 @@ module ApplicationTests
output = `bin/rails db:migrate:up VERSION= 2>&1`
assert_match(/VERSION is required/, output)
+ output = `bin/rails db:migrate:up 2>&1`
+ assert_match(/VERSION is required/, output)
+
output = `bin/rails db:migrate:down VERSION= 2>&1`
assert_match(/VERSION is required - To go down one migration, use db:rollback/, output)
+
+ output = `bin/rails db:migrate:down 2>&1`
+ assert_match(/VERSION is required - To go down one migration, use db:rollback/, output)
end
end