Closed sanak closed 2 years ago
Problem Plugin uninstallation was impossible due to the following error.
% bundle exec rake redmine:plugins:migrate VERSION=0 NAME=redmine_supply == 20210325123542 AddPositionToResourceItems: reverting ======================= -- remove_column(:resource_items, :position, :integer, {:default=>0}) -> 0.0009s == 20210325123542 AddPositionToResourceItems: reverted (0.0032s) ============== == 20190831014300 AddStartDateAndEndDateToResourceItems: reverting ============ -- remove_column(:resource_items, :start_date) -> 0.0003s -- remove_column(:resource_items, :end_date) -> 0.0003s == 20190831014300 AddStartDateAndEndDateToResourceItems: reverted (0.0007s) === == 20190416032823 AddUsageFlagsToCategories: reverting ======================== -- remove_column(:resource_categories, :for_humans, :boolean, {:default=>false}) -> 0.0005s -- remove_column(:resource_categories, :for_assets, :boolean, {:default=>false}) -> 0.0005s == 20190416032823 AddUsageFlagsToCategories: reverted (0.0198s) =============== == 20190415061747 MakeResourceItemCategoryOptional: reverting ================= -- change_column_null(:resource_items, :category_id, false) -> 0.0004s == 20190415061747 MakeResourceItemCategoryOptional: reverted (0.0005s) ======== == 20190415023527 AddProjectIdToResourceItems: reverting ====================== -- remove_column(:resource_items, :project_id) -> 0.0005s == 20190415023527 AddProjectIdToResourceItems: reverted (0.0006s) ============= == 20190412023433 AddTypeToResourceItems: reverting =========================== rake aborted! StandardError: An error has occurred, this and all later migrations canceled: This migration uses change_column, which is not automatically reversible. To make the migration reversible you can either: 1. Define #up and #down methods in place of the #change method. 2. Use the #reversible method to define reversible behavior. /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration/command_recorder.rb:88:in `inverse_of' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration/command_recorder.rb:73:in `record' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration/command_recorder.rb:100:in `change_column' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:871:in `block in method_missing' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:840:in `block in say_with_time' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:840:in `say_with_time' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:860:in `method_missing' /Users/sanak/Build/rb/redmine40/plugins/redmine_supply/db/migrate/20190412023433_add_type_to_resource_items.rb:4:in `change' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:812:in `block in exec_migration' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:683:in `block (2 levels) in revert' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration/command_recorder.rb:61:in `revert' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:683:in `block in revert' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:848:in `suppress_messages' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:682:in `revert' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:812:in `exec_migration' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:798:in `block (2 levels) in migrate' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:797:in `block in migrate' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:416:in `with_connection' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:796:in `migrate' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:977:in `migrate' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1292:in `block in execute_migration_in_transaction' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1343:in `block in ddl_transaction' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/connection_adapters/abstract/database_statements.rb:267:in `block in transaction' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/connection_adapters/abstract/transaction.rb:239:in `block in within_new_transaction' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/connection_adapters/abstract/transaction.rb:236:in `within_new_transaction' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/connection_adapters/abstract/database_statements.rb:267:in `transaction' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/transactions.rb:212:in `transaction' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1343:in `ddl_transaction' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1291:in `execute_migration_in_transaction' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1263:in `block in migrate_without_lock' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1262:in `each' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1262:in `migrate_without_lock' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1210:in `block in migrate' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1363:in `with_advisory_lock' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1210:in `migrate' /Users/sanak/Build/rb/redmine40/lib/redmine/plugin.rb:514:in `down' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1015:in `migrate' /Users/sanak/Build/rb/redmine40/lib/redmine/plugin.rb:536:in `migrate_plugin' /Users/sanak/Build/rb/redmine40/lib/redmine/plugin.rb:477:in `migrate' /Users/sanak/Build/rb/redmine40/lib/redmine/plugin.rb:488:in `migrate' /Users/sanak/Build/rb/redmine40/lib/tasks/redmine.rake:135:in `block (3 levels) in <top (required)>' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>' /Users/sanak/.rbenv/versions/2.6.8/bin/bundle:23:in `load' /Users/sanak/.rbenv/versions/2.6.8/bin/bundle:23:in `<main>' Caused by: ActiveRecord::IrreversibleMigration: This migration uses change_column, which is not automatically reversible. To make the migration reversible you can either: 1. Define #up and #down methods in place of the #change method. 2. Use the #reversible method to define reversible behavior. /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration/command_recorder.rb:88:in `inverse_of' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration/command_recorder.rb:73:in `record' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration/command_recorder.rb:100:in `change_column' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:871:in `block in method_missing' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:840:in `block in say_with_time' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:840:in `say_with_time' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:860:in `method_missing' /Users/sanak/Build/rb/redmine40/plugins/redmine_supply/db/migrate/20190412023433_add_type_to_resource_items.rb:4:in `change' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:812:in `block in exec_migration' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:683:in `block (2 levels) in revert' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration/command_recorder.rb:61:in `revert' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:683:in `block in revert' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:848:in `suppress_messages' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:682:in `revert' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:812:in `exec_migration' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:798:in `block (2 levels) in migrate' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:797:in `block in migrate' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:416:in `with_connection' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:796:in `migrate' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:977:in `migrate' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1292:in `block in execute_migration_in_transaction' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1343:in `block in ddl_transaction' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/connection_adapters/abstract/database_statements.rb:267:in `block in transaction' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/connection_adapters/abstract/transaction.rb:239:in `block in within_new_transaction' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/connection_adapters/abstract/transaction.rb:236:in `within_new_transaction' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/connection_adapters/abstract/database_statements.rb:267:in `transaction' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/transactions.rb:212:in `transaction' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1343:in `ddl_transaction' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1291:in `execute_migration_in_transaction' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1263:in `block in migrate_without_lock' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1262:in `each' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1262:in `migrate_without_lock' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1210:in `block in migrate' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1363:in `with_advisory_lock' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1210:in `migrate' /Users/sanak/Build/rb/redmine40/lib/redmine/plugin.rb:514:in `down' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.5/lib/active_record/migration.rb:1015:in `migrate' /Users/sanak/Build/rb/redmine40/lib/redmine/plugin.rb:536:in `migrate_plugin' /Users/sanak/Build/rb/redmine40/lib/redmine/plugin.rb:477:in `migrate' /Users/sanak/Build/rb/redmine40/lib/redmine/plugin.rb:488:in `migrate' /Users/sanak/Build/rb/redmine40/lib/tasks/redmine.rake:135:in `block (3 levels) in <top (required)>' /Users/sanak/Build/rb/redmine40/vendor/bundle/ruby/2.6.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>' /Users/sanak/.rbenv/versions/2.6.8/bin/bundle:23:in `load' /Users/sanak/.rbenv/versions/2.6.8/bin/bundle:23:in `<main>' Tasks: TOP => redmine:plugins:migrate (See full trace by running task with --trace)
To Reproduce Execute the following command.
$ bundle exec rake redmine:plugins:migrate VERSION=0 NAME=redmine_supply
Expectation Plugin's uninstallation should be finished without error.
Problem Plugin uninstallation was impossible due to the following error.
To Reproduce Execute the following command.
Expectation Plugin's uninstallation should be finished without error.