diff --git a/lib/tasks/migrate_plugins.rake b/lib/tasks/migrate_plugins.rake index 61df9c3..ecbae61 100644 --- a/lib/tasks/migrate_plugins.rake +++ b/lib/tasks/migrate_plugins.rake @@ -2,10 +2,20 @@ namespace :db do desc 'Migrates installed plugins.' task :migrate_plugins => :environment do if Rails.respond_to?('plugins') - Rails.plugins.each do |plugin| - next unless plugin.respond_to?('migrate') - puts "Migrating #{plugin.name}..." - plugin.migrate + if (ENV['PLUGIN']) + plugin = Rails.plugins[ENV['PLUGIN']] + if (!plugin) + puts "Could not find a plugin named #{ENV['PLUGIN']}" + else + puts "Migrating #{plugin.name} to " + (ENV['VERSION'] == nil ? "latest " : "") + "version " + (ENV['VERSION'] == nil ? "" : ENV['VERSION']) + plugin.migrate ENV['VERSION'].to_i + end + else + Rails.plugins.each do |plugin| + next unless plugin.respond_to?('migrate') + puts "Migrating #{plugin.name}..." + plugin.migrate + end end else puts "Undefined method plugins for Rails!"