Commit becdcf37421d9c9cd24e4c87ec4b2027867c722d
1 parent
5aa5b5ef
Exists in
master
and in
29 other branches
Avoiding plugins to be loaded during rake
Letting the plugins enabled during the rake was breaking some tasks like db:schema:load becouse some models were eventually loaded without the tables being created yet.
Showing
2 changed files
with
39 additions
and
0 deletions
Show diff stats
lib/tasks/env.rake
| 1 | +enabled_plugins = Dir.glob(File.join(Rails.root, 'config', 'plugins', '*')).map {|path| File.basename(path)}.reject {|a| a == "README"} | |
| 2 | +sh './script/noosfero-plugins disableall' | |
| 1 | 3 | require File.join(File.dirname(__FILE__), '../../config/environment.rb') |
| 4 | +enabled_plugins.each do |plugin| | |
| 5 | + sh "./script/noosfero-plugins enable #{plugin}" | |
| 6 | +end | ... | ... |
lib/tasks/plugins.rake
| ... | ... | @@ -8,6 +8,39 @@ namespace :noosfero do |
| 8 | 8 | ActiveRecord::Migrator.migrate(path, ENV["VERSION"] ? ENV["VERSION"].to_i : nil) |
| 9 | 9 | end |
| 10 | 10 | end |
| 11 | + | |
| 12 | + task :save_enabled do | |
| 13 | + ENV['ENABLED_PLUGINS'] = Dir.glob(File.join(Rails.root, 'config', 'plugins', '*')).map {|path| File.basename(path)}.reject {|a| a == "README"}.join(',') | |
| 14 | + end | |
| 15 | + | |
| 16 | + task :temporary_config, :action, :needs => [:save_enabled] do |t, args| | |
| 17 | + sh "./script/noosfero-plugins #{args.action}all" | |
| 18 | + end | |
| 19 | + | |
| 20 | + task :restore_config do | |
| 21 | + sh "./script/noosfero-plugins disableall" | |
| 22 | + enabled_plugins = ENV['ENABLED_PLUGINS'].split(',') | |
| 23 | + enabled_plugins.each do |plugin| | |
| 24 | + sh "./script/noosfero-plugins enable #{plugin}" | |
| 25 | + end | |
| 26 | + end | |
| 27 | + | |
| 28 | + task :prepare_environment_disable do | |
| 29 | + Rake::Task['noosfero:plugins:temporary_config'].invoke('disable') | |
| 30 | + | |
| 31 | + Rake::Task['environment'].enhance do | |
| 32 | + Rake::Task['noosfero:plugins:restore_config'].invoke | |
| 33 | + end | |
| 34 | + end | |
| 35 | + | |
| 36 | + task :prepare_environment_enable do | |
| 37 | + Rake::Task['noosfero:plugins:temporary_config'].invoke('enable') | |
| 38 | + | |
| 39 | + Rake::Task['environment'].enhance do | |
| 40 | + Rake::Task['noosfero:plugins:restore_config'].invoke | |
| 41 | + end | |
| 42 | + end | |
| 43 | + | |
| 11 | 44 | task :abort_if_pending_migrations do |
| 12 | 45 | if defined? ActiveRecord |
| 13 | 46 | plugin_migration_dirs.each do |path| |
| ... | ... | @@ -28,3 +61,4 @@ end |
| 28 | 61 | |
| 29 | 62 | task 'db:migrate' => 'noosfero:plugins:migrate' |
| 30 | 63 | task 'db:abort_if_pending_migrations' => 'noosfero:plugins:abort_if_pending_migrations' |
| 64 | +task 'environment' => 'noosfero:plugins:prepare_environment_disable' | ... | ... |