method

load_schema_if_pending!

Importance_0
v6.0.0 - Show latest stable - 0 notes - Class: ActiveRecord::Migration
load_schema_if_pending!() public

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

Hide source
# File activerecord/lib/active_record/migration.rb, line 590
      def load_schema_if_pending!
        current_config = Base.connection_config
        all_configs = ActiveRecord::Base.configurations.configs_for(env_name: Rails.env)

        needs_update = !all_configs.all? do |db_config|
          Tasks::DatabaseTasks.schema_up_to_date?(db_config.config, ActiveRecord::Base.schema_format, nil, Rails.env, db_config.spec_name)
        end

        if needs_update
          # Roundtrip to Rake to allow plugins to hook into database initialization.
          root = defined?(ENGINE_ROOT) ? ENGINE_ROOT : Rails.root
          FileUtils.cd(root) do
            Base.clear_all_connections!
            system("bin/rails db:test:prepare")
          end
        end

        # Establish a new connection, the old database may be gone (db:test:prepare uses purge)
        Base.establish_connection(current_config)

        check_pending!
      end
Register or log in to add new notes.