diff --git a/lib/tasks/zammad/db/reset.rake b/lib/tasks/zammad/db/reset.rake index b88747ddf..b8a6b304e 100644 --- a/lib/tasks/zammad/db/reset.rake +++ b/lib/tasks/zammad/db/reset.rake @@ -11,16 +11,21 @@ namespace :zammad do # execute them and their prerequisites multiple times (in tests) # there is no way in rake to achieve that %w[db:drop:_unsafe db:create db:migrate db:seed zammad:db:rebuild].each do |task| + case task + when 'db:migrate' - if task == 'db:drop:_unsafe' + # make sure that old column schemas are getting dropped to prevent + # wrong schema for new db setup + ActiveRecord::Base.descendants.each(&:reset_column_information) + + $stdout = StringIO.new + when 'db:drop:_unsafe' # ensure all DB connections are closed before dropping the DB # since Rails > 5.2 two connections are present (after `db:migrate`) that # block dropping the DB for PostgreSQL ActiveRecord::Base.connection_handler.connection_pools.each(&:disconnect!) end - $stdout = StringIO.new if task == 'db:migrate'.freeze - Rake::Task[task].reenable Rake::Task[task].invoke ensure