diff options
author | kennyj <kennyj@gmail.com> | 2013-05-01 02:21:23 +0900 |
---|---|---|
committer | kennyj <kennyj@gmail.com> | 2013-05-01 02:37:09 +0900 |
commit | 253ccbc0acd500c25be58d0861d75d381505eb9d (patch) | |
tree | ae4a9a60930de7024c07cf8d8a2b938077530f06 /activerecord/lib | |
parent | 1e5ee397ff371720cc50fe6445b8f9f0a4cdbffc (diff) | |
download | rails-253ccbc0acd500c25be58d0861d75d381505eb9d.tar.gz rails-253ccbc0acd500c25be58d0861d75d381505eb9d.tar.bz2 rails-253ccbc0acd500c25be58d0861d75d381505eb9d.zip |
Abort a rake task when missing db/structure.sql like `db:schema:load` task.
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/railties/databases.rake | 8 | ||||
-rw-r--r-- | activerecord/lib/active_record/tasks/database_tasks.rb | 8 |
2 files changed, 11 insertions, 5 deletions
diff --git a/activerecord/lib/active_record/railties/databases.rake b/activerecord/lib/active_record/railties/databases.rake index bb9e390c8f..92bef09ff5 100644 --- a/activerecord/lib/active_record/railties/databases.rake +++ b/activerecord/lib/active_record/railties/databases.rake @@ -249,11 +249,8 @@ db_namespace = namespace :db do desc 'Load a schema.rb file into the database' task :load => [:environment, :load_config] do file = ENV['SCHEMA'] || File.join(ActiveRecord::Tasks::DatabaseTasks.db_dir, 'schema.rb') - if File.exists?(file) - load(file) - else - abort %{#{file} doesn't exist yet. Run `rake db:migrate` to create it, then try again. If you do not intend to use a database, you should instead alter #{Rails.root}/config/application.rb to limit the frameworks that will be loaded.} - end + ActiveRecord::Tasks::DatabaseTasks.check_schema_file(file) + load(file) end task :load_if_ruby => ['db:create', :environment] do @@ -298,6 +295,7 @@ db_namespace = namespace :db do # desc "Recreate the databases from the structure.sql file" task :load => [:environment, :load_config] do filename = ENV['DB_STRUCTURE'] || File.join(ActiveRecord::Tasks::DatabaseTasks.db_dir, "structure.sql") + ActiveRecord::Tasks::DatabaseTasks.check_schema_file(filename) current_config = ActiveRecord::Tasks::DatabaseTasks.current_config ActiveRecord::Tasks::DatabaseTasks.structure_load(current_config, filename) end diff --git a/activerecord/lib/active_record/tasks/database_tasks.rb b/activerecord/lib/active_record/tasks/database_tasks.rb index 8d0792f750..3e8b79c7a0 100644 --- a/activerecord/lib/active_record/tasks/database_tasks.rb +++ b/activerecord/lib/active_record/tasks/database_tasks.rb @@ -148,6 +148,14 @@ module ActiveRecord class_for_adapter(configuration['adapter']).new(*arguments).structure_load(filename) end + def check_schema_file(filename) + unless File.exists?(filename) + message = %{#{filename} doesn't exist yet. Run `rake db:migrate` to create it, then try again.} + message << %{ If you do not intend to use a database, you should instead alter #{Rails.root}/config/application.rb to limit the frameworks that will be loaded.} if defined?(::Rails) + Kernel.abort message + end + end + def load_seed if seed_loader seed_loader.load_seed |