@@ -385,9 +385,26 module Redmine #:nodoc: | |||||
385 |
|
385 | |||
386 | # Migrate this plugin to the given version |
|
386 | # Migrate this plugin to the given version | |
387 | def migrate(version = nil) |
|
387 | def migrate(version = nil) | |
|
388 | puts "Migrating #{id} (#{name})..." | |||
388 | Redmine::Plugin::Migrator.migrate_plugin(self, version) |
|
389 | Redmine::Plugin::Migrator.migrate_plugin(self, version) | |
389 | end |
|
390 | end | |
390 |
|
391 | |||
|
392 | # Migrates all plugins or a single plugin to a given version | |||
|
393 | # Exemples: | |||
|
394 | # Plugin.migrate | |||
|
395 | # Plugin.migrate('sample_plugin') | |||
|
396 | # Plugin.migrate('sample_plugin', 1) | |||
|
397 | # | |||
|
398 | def self.migrate(name=nil, version=nil) | |||
|
399 | if name.present? | |||
|
400 | find(name).migrate(version) | |||
|
401 | else | |||
|
402 | all.each do |plugin| | |||
|
403 | plugin.migrate | |||
|
404 | end | |||
|
405 | end | |||
|
406 | end | |||
|
407 | ||||
391 | class Migrator < ActiveRecord::Migrator |
|
408 | class Migrator < ActiveRecord::Migrator | |
392 | # We need to be able to set the 'current' plugin being migrated. |
|
409 | # We need to be able to set the 'current' plugin being migrated. | |
393 | cattr_accessor :current_plugin |
|
410 | cattr_accessor :current_plugin |
@@ -8,3 +8,4 deprecated_task :load_default_data, "redmine:load_default_data" | |||||
8 | deprecated_task :migrate_from_mantis, "redmine:migrate_from_mantis" |
|
8 | deprecated_task :migrate_from_mantis, "redmine:migrate_from_mantis" | |
9 | deprecated_task :migrate_from_trac, "redmine:migrate_from_trac" |
|
9 | deprecated_task :migrate_from_trac, "redmine:migrate_from_trac" | |
10 | deprecated_task "db:migrate_plugins", "redmine:plugins:migrate" |
|
10 | deprecated_task "db:migrate_plugins", "redmine:plugins:migrate" | |
|
11 | deprecated_task "db:migrate:plugin", "redmine:plugins:migrate" |
@@ -51,9 +51,24 namespace :redmine do | |||||
51 | namespace :plugins do |
|
51 | namespace :plugins do | |
52 | desc 'Migrates installed plugins.' |
|
52 | desc 'Migrates installed plugins.' | |
53 | task :migrate => :environment do |
|
53 | task :migrate => :environment do | |
54 | Redmine::Plugin.all.each do |plugin| |
|
54 | name = ENV['name'] | |
55 | puts "Migrating #{plugin.name}..." |
|
55 | version = nil | |
56 | plugin.migrate |
|
56 | version_string = ENV['version'] | |
|
57 | if version_string | |||
|
58 | if version_string =~ /^\d+$/ | |||
|
59 | version = version_string.to_i | |||
|
60 | if name.nil? | |||
|
61 | abort "The VERSION argument requires a plugin NAME." | |||
|
62 | end | |||
|
63 | else | |||
|
64 | abort "Invalid version #{version_string} given." | |||
|
65 | end | |||
|
66 | end | |||
|
67 | ||||
|
68 | begin | |||
|
69 | Redmine::Plugin.migrate(name, version) | |||
|
70 | rescue Redmine::PluginNotFound | |||
|
71 | abort "Plugin #{name} was not found." | |||
57 | end |
|
72 | end | |
58 | end |
|
73 | end | |
59 |
|
74 |
General Comments 0
You need to be logged in to leave comments.
Login now