Browse Source

Maintenance: Make sure that the column schema is resetted on db reset to prevent old schema because of different branches or custom developments.

Rolf Schmidt 3 years ago
parent
commit
2793733829
1 changed files with 8 additions and 3 deletions
  1. 8 3
      lib/tasks/zammad/db/reset.rake

+ 8 - 3
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