From: Go MAEDA Date: Sun, 30 Oct 2022 06:26:02 +0000 (+0000) Subject: Database migrations don't run correctly for plugins when specifying the `VERSION... X-Git-Tag: 5.1.0~358 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=a749a6dd83c26f3b242178821d0eb26a65c29899;p=redmine.git Database migrations don't run correctly for plugins when specifying the `VERSION` env variable (#31116). Contributed by crypto gopher. git-svn-id: https://svn.redmine.org/redmine/trunk@21933 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- 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