Defect #31116 » 0001-Fixes-plugin-migration-with-specific-version.patch
| lib/redmine/plugin.rb | ||
|---|---|---|
| 515 | 515 |
def open |
| 516 | 516 |
Migrator.new(:up, migrations, nil) |
| 517 | 517 |
end |
| 518 | ||
| 519 |
def migrate(target_version = nil, current_version = nil) |
|
| 520 |
case |
|
| 521 |
when target_version.nil? |
|
| 522 |
up(target_version) |
|
| 523 |
when current_version == 0 && target_version == 0 |
|
| 524 |
[] |
|
| 525 |
when current_version && current_version > target_version |
|
| 526 |
down(target_version) |
|
| 527 |
else |
|
| 528 |
up(target_version) |
|
| 529 |
end |
|
| 530 |
end |
|
| 518 | 531 |
end |
| 519 | 532 | |
| 520 | 533 |
class Migrator < ActiveRecord::Migrator |
| ... | ... | |
| 525 | 538 |
# Runs the migrations from a plugin, up (or down) to the version given |
| 526 | 539 |
def migrate_plugin(plugin, version) |
| 527 | 540 |
self.current_plugin = plugin |
| 528 |
return if current_version(plugin) == version |
|
| 541 |
current = current_version(plugin) |
|
| 542 |
return if current == version |
|
| 529 | 543 | |
| 530 |
MigrationContext.new(plugin.migration_directory).migrate(version) |
|
| 544 |
MigrationContext.new(plugin.migration_directory).migrate(version, current)
|
|
| 531 | 545 |
end |
| 532 | 546 | |
| 533 | 547 |
def get_all_versions(plugin = current_plugin) |