From a7bc54db371a295d832f100cc3b4558df492feee Mon Sep 17 00:00:00 2001 From: Rolf Schmidt Date: Mon, 3 Jan 2022 14:45:51 +0100 Subject: [PATCH] Maintenance: Make sure that the column schema is resetted on db reset to prevent old schema because of different branches or custom developments. --- lib/tasks/zammad/db/reset.rake | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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