提交 4f77f956 编写于 作者: P Piotr Sarnacki

Merge pull request #5821 from Deradon/fix-engine-tasks

Provided fix for calling rake tasks within mountable engines
......@@ -608,7 +608,12 @@ def load_seed
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 @@ def up
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'
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册