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 | 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' |