mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Merge pull request #5821 from Deradon/fix-engine-tasks
Provided fix for calling rake tasks within mountable engines
This commit is contained in:
commit
4f77f956a8
2 changed files with 37 additions and 1 deletions
|
@ -608,7 +608,12 @@ module Rails
|
|||
desc "Copy migrations from #{railtie_name} to application"
|
||||
task :migrations do
|
||||
ENV["FROM"] = railtie_name
|
||||
Rake::Task["railties:install:migrations"].invoke
|
||||
if Rake::Task.task_defined?("railties:install:migrations")
|
||||
Rake::Task["railties:install:migrations"].invoke
|
||||
else
|
||||
Rake::Task["app:railties:install:migrations"].invoke
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -111,6 +111,37 @@ module RailtiesTest
|
|||
end
|
||||
end
|
||||
|
||||
test "mountable engine should copy migrations within engine_path" do
|
||||
@plugin.write "lib/bukkits.rb", <<-RUBY
|
||||
module Bukkits
|
||||
class Engine < ::Rails::Engine
|
||||
isolate_namespace Bukkits
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
|
||||
@plugin.write "db/migrate/0_add_first_name_to_users.rb", <<-RUBY
|
||||
class AddFirstNameToUsers < ActiveRecord::Migration
|
||||
end
|
||||
RUBY
|
||||
|
||||
@plugin.write "Rakefile", <<-RUBY
|
||||
APP_RAKEFILE = '#{app_path}/Rakefile'
|
||||
load 'rails/tasks/engine.rake'
|
||||
RUBY
|
||||
|
||||
add_to_config "ActiveRecord::Base.timestamped_migrations = false"
|
||||
|
||||
boot_rails
|
||||
|
||||
Dir.chdir(@plugin.path) do
|
||||
output = `bundle exec rake app:bukkits:install:migrations`
|
||||
assert File.exists?("#{app_path}/db/migrate/0_add_first_name_to_users.bukkits.rb")
|
||||
assert_match(/Copied migration 0_add_first_name_to_users.bukkits.rb from bukkits/, output)
|
||||
assert_equal 1, Dir["#{app_path}/db/migrate/*.rb"].length
|
||||
end
|
||||
end
|
||||
|
||||
test "no rake task without migrations" do
|
||||
boot_rails
|
||||
require 'rake'
|
||||
|
|
Loading…
Reference in a new issue