提交 72809654 编写于 作者: R Rafael Mendonça França

Revert "Explicitly exit with status "1" for create and drop failures"

This reverts commit 22f80ae5.

See
https://github.com/rails/rails/commit/22f80ae57b26907f662b7fd50a7270a6381e527e#commitcomment-4640676

Conflicts:
	activerecord/CHANGELOG.md
上级 a6f58a53
...@@ -2,10 +2,6 @@ ...@@ -2,10 +2,6 @@
*Edo Balvers* *Edo Balvers*
* Exit with non-zero status for failed database rake tasks.
*Jay Hayes*
* Added `ActiveRecord::Base.to_param` for convenient "pretty" URLs derived from a model's attribute or method. * Added `ActiveRecord::Base.to_param` for convenient "pretty" URLs derived from a model's attribute or method.
Example: Example:
......
...@@ -8,48 +8,32 @@ db_namespace = namespace :db do ...@@ -8,48 +8,32 @@ db_namespace = namespace :db do
namespace :create do namespace :create do
task :all => :load_config do task :all => :load_config do
begin
ActiveRecord::Tasks::DatabaseTasks.create_all ActiveRecord::Tasks::DatabaseTasks.create_all
rescue
exit(1)
end
end end
end end
desc 'Create the database from DATABASE_URL or config/database.yml for the current Rails.env (use db:create:all to create all databases in the config)' desc 'Create the database from DATABASE_URL or config/database.yml for the current Rails.env (use db:create:all to create all databases in the config)'
task :create => [:load_config] do task :create => [:load_config] do
begin
if ENV['DATABASE_URL'] if ENV['DATABASE_URL']
ActiveRecord::Tasks::DatabaseTasks.create_database_url ActiveRecord::Tasks::DatabaseTasks.create_database_url
else else
ActiveRecord::Tasks::DatabaseTasks.create_current ActiveRecord::Tasks::DatabaseTasks.create_current
end end
rescue
exit(1)
end
end end
namespace :drop do namespace :drop do
task :all => :load_config do task :all => :load_config do
begin
ActiveRecord::Tasks::DatabaseTasks.drop_all ActiveRecord::Tasks::DatabaseTasks.drop_all
rescue
exit(1)
end
end end
end end
desc 'Drops the database using DATABASE_URL or the current Rails.env (use db:drop:all to drop all databases)' desc 'Drops the database using DATABASE_URL or the current Rails.env (use db:drop:all to drop all databases)'
task :drop => [:load_config] do task :drop => [:load_config] do
begin
if ENV['DATABASE_URL'] if ENV['DATABASE_URL']
ActiveRecord::Tasks::DatabaseTasks.drop_database_url ActiveRecord::Tasks::DatabaseTasks.drop_database_url
else else
ActiveRecord::Tasks::DatabaseTasks.drop_current ActiveRecord::Tasks::DatabaseTasks.drop_current
end end
rescue
exit(1)
end
end end
desc "Migrate the database (options: VERSION=x, VERBOSE=false, SCOPE=blog)." desc "Migrate the database (options: VERSION=x, VERBOSE=false, SCOPE=blog)."
......
...@@ -69,11 +69,9 @@ def create(*arguments) ...@@ -69,11 +69,9 @@ def create(*arguments)
class_for_adapter(configuration['adapter']).new(*arguments).create class_for_adapter(configuration['adapter']).new(*arguments).create
rescue DatabaseAlreadyExists rescue DatabaseAlreadyExists
$stderr.puts "#{configuration['database']} already exists" $stderr.puts "#{configuration['database']} already exists"
raise
rescue Exception => error rescue Exception => error
$stderr.puts error, *(error.backtrace) $stderr.puts error, *(error.backtrace)
$stderr.puts "Couldn't create database for #{configuration.inspect}" $stderr.puts "Couldn't create database for #{configuration.inspect}"
raise
end end
def create_all def create_all
...@@ -97,7 +95,6 @@ def drop(*arguments) ...@@ -97,7 +95,6 @@ def drop(*arguments)
rescue Exception => error rescue Exception => error
$stderr.puts error, *(error.backtrace) $stderr.puts error, *(error.backtrace)
$stderr.puts "Couldn't drop #{configuration['database']}" $stderr.puts "Couldn't drop #{configuration['database']}"
raise
end end
def drop_all def drop_all
......
...@@ -62,11 +62,9 @@ def test_create_when_database_exists_outputs_info_to_stderr ...@@ -62,11 +62,9 @@ def test_create_when_database_exists_outputs_info_to_stderr
ActiveRecord::StatementInvalid.new("Can't create database 'dev'; database exists:") ActiveRecord::StatementInvalid.new("Can't create database 'dev'; database exists:")
) )
assert_raises(ActiveRecord::Tasks::DatabaseAlreadyExists) do
ActiveRecord::Tasks::DatabaseTasks.create @configuration ActiveRecord::Tasks::DatabaseTasks.create @configuration
end end
end end
end
if current_adapter?(:MysqlAdapter) if current_adapter?(:MysqlAdapter)
class MysqlDBCreateAsRootTest < ActiveRecord::TestCase class MysqlDBCreateAsRootTest < ActiveRecord::TestCase
......
...@@ -60,10 +60,8 @@ def test_db_create_with_error_prints_message ...@@ -60,10 +60,8 @@ def test_db_create_with_error_prints_message
$stderr.expects(:puts). $stderr.expects(:puts).
with("Couldn't create database for #{@configuration.inspect}") with("Couldn't create database for #{@configuration.inspect}")
assert_raises(Exception) do
ActiveRecord::Tasks::DatabaseTasks.create @configuration ActiveRecord::Tasks::DatabaseTasks.create @configuration
end end
end
def test_create_when_database_exists_outputs_info_to_stderr def test_create_when_database_exists_outputs_info_to_stderr
$stderr.expects(:puts).with("my-app-db already exists").once $stderr.expects(:puts).with("my-app-db already exists").once
...@@ -72,11 +70,9 @@ def test_create_when_database_exists_outputs_info_to_stderr ...@@ -72,11 +70,9 @@ def test_create_when_database_exists_outputs_info_to_stderr
ActiveRecord::StatementInvalid.new('database "my-app-db" already exists') ActiveRecord::StatementInvalid.new('database "my-app-db" already exists')
) )
assert_raises(ActiveRecord::Tasks::DatabaseAlreadyExists) do
ActiveRecord::Tasks::DatabaseTasks.create @configuration ActiveRecord::Tasks::DatabaseTasks.create @configuration
end end
end end
end
class PostgreSQLDBDropTest < ActiveRecord::TestCase class PostgreSQLDBDropTest < ActiveRecord::TestCase
def setup def setup
......
...@@ -28,10 +28,8 @@ def test_db_create_when_file_exists ...@@ -28,10 +28,8 @@ def test_db_create_when_file_exists
$stderr.expects(:puts).with("#{@database} already exists") $stderr.expects(:puts).with("#{@database} already exists")
assert_raises(ActiveRecord::Tasks::DatabaseAlreadyExists) do
ActiveRecord::Tasks::DatabaseTasks.create @configuration, '/rails/root' ActiveRecord::Tasks::DatabaseTasks.create @configuration, '/rails/root'
end end
end
def test_db_create_with_file_does_nothing def test_db_create_with_file_does_nothing
File.stubs(:exist?).returns(true) File.stubs(:exist?).returns(true)
...@@ -39,10 +37,8 @@ def test_db_create_with_file_does_nothing ...@@ -39,10 +37,8 @@ def test_db_create_with_file_does_nothing
ActiveRecord::Base.expects(:establish_connection).never ActiveRecord::Base.expects(:establish_connection).never
assert_raises(ActiveRecord::Tasks::DatabaseAlreadyExists) do
ActiveRecord::Tasks::DatabaseTasks.create @configuration, '/rails/root' ActiveRecord::Tasks::DatabaseTasks.create @configuration, '/rails/root'
end end
end
def test_db_create_establishes_a_connection def test_db_create_establishes_a_connection
ActiveRecord::Base.expects(:establish_connection).with(@configuration) ActiveRecord::Base.expects(:establish_connection).with(@configuration)
...@@ -57,11 +53,9 @@ def test_db_create_with_error_prints_message ...@@ -57,11 +53,9 @@ def test_db_create_with_error_prints_message
$stderr.expects(:puts). $stderr.expects(:puts).
with("Couldn't create database for #{@configuration.inspect}") with("Couldn't create database for #{@configuration.inspect}")
assert_raises(Exception) do
ActiveRecord::Tasks::DatabaseTasks.create @configuration, '/rails/root' ActiveRecord::Tasks::DatabaseTasks.create @configuration, '/rails/root'
end end
end end
end
class SqliteDBDropTest < ActiveRecord::TestCase class SqliteDBDropTest < ActiveRecord::TestCase
def setup def setup
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册