summaryrefslogtreecommitdiff
path: root/config/initializers/ar_speed_up_migration_checking.rb
blob: d61e2230b54bc61946e52e5d7b6d22a044dc97e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
if Rails.env.test?
  require 'active_record/migration'

  module ActiveRecord
    class Migrator
      class << self
        alias_method :migrations_unmemoized, :migrations
        alias_method :get_all_versions_unmemoized, :get_all_versions

        # This method is called a large number of times per rspec example, and
        # it reads + parses `db/migrate/*` each time. Memoizing it can save 0.5
        # seconds per spec.
        def migrations(paths)
          @migrations ||= migrations_unmemoized(paths)
        end

        def get_all_versions(connection = Base.connection)
          @all_versions ||= get_all_versions_unmemoized(connection)
        end
      end
    end
  end
end