diff --git a/lib/redmine/plugin.rb b/lib/redmine/plugin.rb
index bf1c1b4150..1ded9ebb60 100644
--- a/lib/redmine/plugin.rb
+++ b/lib/redmine/plugin.rb
@@ -403,77 +403,5 @@ module Redmine #:nodoc:
end
end
end
-
- # The directory containing this plugin's migrations (plugin/db/migrate)
- def migration_directory
- File.join(Rails.root, 'vendor/plugins', id.to_s, 'db', 'migrate')
- end
-
- # Returns the version number of the latest migration for this plugin. Returns
- # nil if this plugin has no migrations.
- def latest_migration
- migrations.last
- end
-
- # Returns the version numbers of all migrations for this plugin.
- def migrations
- migrations = Dir[migration_directory+"/*.rb"]
- migrations.map { |p| File.basename(p).match(/0*(\d+)\_/)[1].to_i }.sort
- end
-
- # Migrate this plugin to the given version
- def migrate(version = nil)
- puts "Migrating #{id} (#{name})..."
- Redmine::Plugin::Migrator.migrate_plugin(self, version)
- end
-
- # Migrates all plugins or a single plugin to a given version
- # Exemples:
- # Plugin.migrate
- # Plugin.migrate('sample_plugin')
- # Plugin.migrate('sample_plugin', 1)
- #
- def self.migrate(name=nil, version=nil)
- if name.present?
- find(name).migrate(version)
- else
- all.each do |plugin|
- plugin.migrate
- end
- end
- end
-
- class Migrator < ActiveRecord::Migrator
- # We need to be able to set the 'current' plugin being migrated.
- cattr_accessor :current_plugin
-
- class << self
- # Runs the migrations from a plugin, up (or down) to the version given
- def migrate_plugin(plugin, version)
- self.current_plugin = plugin
- require 'ruby-debug'; debugger
- return if current_version(plugin) == version
- migrate(plugin.migration_directory, version)
- end
-
- def current_version(plugin=current_plugin)
- # Delete migrations that don't match .. to_i will work because the number comes first
- ::ActiveRecord::Base.connection.select_values(
- "SELECT version FROM #{schema_migrations_table_name}"
- ).delete_if{ |v| v.match(/-#{plugin.id}/) == nil }.map(&:to_i).max || 0
- end
- end
-
- def migrated
- sm_table = self.class.schema_migrations_table_name
- ::ActiveRecord::Base.connection.select_values(
- "SELECT version FROM #{sm_table}"
- ).delete_if{ |v| v.match(/-#{current_plugin.id}/) == nil }.map(&:to_i).sort
- end
-
- def record_version_state_after_migrating(version)
- super(version.to_s + "-" + current_plugin.id.to_s)
- end
- end
end
end
diff --git a/lib/tasks/ci.rake b/lib/tasks/ci.rake
index 0e6073dd1f..79809ef8ee 100644
--- a/lib/tasks/ci.rake
+++ b/lib/tasks/ci.rake
@@ -62,7 +62,6 @@ namespace :ci do
# Create and migrate the database
Rake::Task["db:create"].invoke
Rake::Task["db:migrate"].invoke
- Rake::Task["db:migrate:plugins"].invoke #noop currently
Rake::Task["db:schema:dump"].invoke
# Create test repositories
@@ -76,7 +75,6 @@ namespace :ci do
Rake::Task["db:drop"].invoke
Rake::Task["db:create"].invoke
Rake::Task["db:migrate"].invoke
- Rake::Task["db:migrate:plugins"].invoke
Rake::Task["db:schema:dump"].invoke
Rake::Task["test:scm:update"].invoke
end
diff --git a/lib/tasks/deprecated.rake b/lib/tasks/deprecated.rake
index 214f35ef8d..f27fbd9534 100644
--- a/lib/tasks/deprecated.rake
+++ b/lib/tasks/deprecated.rake
@@ -12,14 +12,27 @@
# See doc/COPYRIGHT.rdoc for more details.
#++
+
def deprecated_task(name, new_name)
task name=>new_name do
$stderr.puts "\nNote: The rake task #{name} has been deprecated, please use the replacement version #{new_name}"
end
end
+def removed_task(name, message)
+ task name do
+ $stderr.puts "\nError: The rake task #{name} has been removed. #{message}"
+ raise
+ end
+end
+
deprecated_task :load_default_data, "redmine:load_default_data"
deprecated_task :migrate_from_mantis, "redmine:migrate_from_mantis"
deprecated_task :migrate_from_trac, "redmine:migrate_from_trac"
-deprecated_task "db:migrate_plugins", "redmine:plugins:migrate"
-deprecated_task "db:migrate:plugin", "redmine:plugins:migrate"
+
+plugin_migrate_message = ":install:migrations is used now to copy" +
+ " migrations to the rails application directory." +
+ " After installation, use db:migrate."
+removed_task "db:migrate_plugins", plugin_migrate_message
+removed_task "db:migrate:plugin", plugin_migrate_message
+removed_task "redmine:plugins:migrate", plugin_migrate_message
diff --git a/lib/tasks/plugins.rake b/lib/tasks/plugins.rake
index d64950eff3..feda8c32a2 100644
--- a/lib/tasks/plugins.rake
+++ b/lib/tasks/plugins.rake
@@ -49,31 +49,6 @@ namespace :redmine do
PluginSourceAnnotationExtractor.enumerate 'call_hook'
end
- desc 'Migrates installed plugins.'
- task :migrate => :environment do
- name = ENV['NAME']
- version = nil
- version_string = ENV['VERSION']
- if version_string
- if version_string =~ /^\d+$/
- version = version_string.to_i
- if name.nil?
- abort "The VERSION argument requires a plugin NAME."
- end
- else
- abort "Invalid VERSION #{version_string} given."
- end
- end
-
- begin
- Redmine::Plugin.migrate(name, version)
- rescue Redmine::PluginNotFound
- abort "Plugin #{name} was not found."
- end
-
- Rake::Task["db:schema:dump"].invoke
- end
-
desc 'Copies plugins assets into the public directory.'
task :assets => :environment do
name = ENV['NAME']
@@ -116,11 +91,3 @@ namespace :redmine do
end
end
end
-
-namespace :db do
- namespace :migrate do
- task :plugins do
- #noop
- end
- end
-end
diff --git a/setup.rb b/setup.rb
index 907c75b245..cd5993d756 100755
--- a/setup.rb
+++ b/setup.rb
@@ -147,7 +147,7 @@ def setup_openproject
return false unless system("rake db:drop:all")
end
- return false unless system("rake db:create:all") and migrate_core and migrate_plugins
+ return false unless system("rake db:create:all") and migrate_core
else
return false
end
@@ -156,11 +156,6 @@ def setup_openproject
system("rake generate_session_store")
end
-def migrate_plugins
- puts $output_prefix + "Migrate Plugins"
- return system("rake db:migrate:plugins")
-end
-
def migrate_core
puts $output_prefix + "Migrate Core"
return system("rake db:migrate")