Commit becdcf37421d9c9cd24e4c87ec4b2027867c722d
1 parent
5aa5b5ef
Exists in
master
and in
22 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 | require File.join(File.dirname(__FILE__), '../../config/environment.rb') | 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,6 +8,39 @@ namespace :noosfero do | ||
| 8 | ActiveRecord::Migrator.migrate(path, ENV["VERSION"] ? ENV["VERSION"].to_i : nil) | 8 | ActiveRecord::Migrator.migrate(path, ENV["VERSION"] ? ENV["VERSION"].to_i : nil) |
| 9 | end | 9 | end |
| 10 | end | 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 | task :abort_if_pending_migrations do | 44 | task :abort_if_pending_migrations do |
| 12 | if defined? ActiveRecord | 45 | if defined? ActiveRecord |
| 13 | plugin_migration_dirs.each do |path| | 46 | plugin_migration_dirs.each do |path| |
| @@ -28,3 +61,4 @@ end | @@ -28,3 +61,4 @@ end | ||
| 28 | 61 | ||
| 29 | task 'db:migrate' => 'noosfero:plugins:migrate' | 62 | task 'db:migrate' => 'noosfero:plugins:migrate' |
| 30 | task 'db:abort_if_pending_migrations' => 'noosfero:plugins:abort_if_pending_migrations' | 63 | task 'db:abort_if_pending_migrations' => 'noosfero:plugins:abort_if_pending_migrations' |
| 64 | +task 'environment' => 'noosfero:plugins:prepare_environment_disable' |