diff --git a/lib/redmine/plugin.rb b/lib/redmine/plugin.rb index fb42a8fa9..78eee1e7f 100644 --- a/lib/redmine/plugin.rb +++ b/lib/redmine/plugin.rb @@ -485,6 +485,10 @@ module Redmine def open Migrator.new(:up, migrations, schema_migration) end + + def current_version + Migrator.current_version + end end class Migrator < ActiveRecord::Migrator diff --git a/test/unit/lib/redmine/plugin_test.rb b/test/unit/lib/redmine/plugin_test.rb index a5a1b2aa3..24c06240c 100644 --- a/test/unit/lib/redmine/plugin_test.rb +++ b/test/unit/lib/redmine/plugin_test.rb @@ -217,4 +217,17 @@ class Redmine::PluginTest < ActiveSupport::TestCase assert Redmine::Plugin.migrate('foo_plugin') end + + def test_migration_context_should_override_current_version + plugin = @klass.register :foo_plugin do + name 'Foo plugin' + version '0.0.1' + end + migration_dir = File.join(@klass.directory, 'db', 'migrate') + + Redmine::Plugin::Migrator.current_plugin = plugin + context = Redmine::Plugin::MigrationContext.new(migration_dir, ::ActiveRecord::Base.connection.schema_migration) + # current_version should be zero because Foo plugin has no migration + assert_equal 0, context.current_version + end end