diff options
author | eileencodes <eileencodes@gmail.com> | 2019-05-30 08:25:05 -0400 |
---|---|---|
committer | eileencodes <eileencodes@gmail.com> | 2019-06-14 11:15:08 -0400 |
commit | 7cc27d749c3563e6b278ad01d233cb92ea3b7935 (patch) | |
tree | 5975a2c14a3b0f9d2dfc234a2a5b27f3e50354e0 /activerecord/MIT-LICENSE | |
parent | c0af72bf86701e03ac97a50754beddf2b5d7943f (diff) | |
download | rails-7cc27d749c3563e6b278ad01d233cb92ea3b7935.tar.gz rails-7cc27d749c3563e6b278ad01d233cb92ea3b7935.tar.bz2 rails-7cc27d749c3563e6b278ad01d233cb92ea3b7935.zip |
Move SchemaMigration to migration_context
This PR moves the `schema_migration` to `migration_context` so that we
can access the `schema_migration` per connection.
This does not change behavior of the SchemaMigration if you are using
one database. This also does not change behavior of any public APIs.
`Migrator` is private as is `MigrationContext` so we can change these as
needed.
We now need to pass a `schema_migration` to `Migrator` so that we can
run migrations on the right connection outside the context of a rake
task.
The bugs this fixes were discovered while debugging the issues around
the SchemaCache on initialization with multiple database. It was clear
that `get_all_versions` wouldn't work without these changes outside the
context of a rake task (because in the rake task we establish a
connection and change AR::Base.connection to the db we're running on).
Because the `SchemaCache` relies on the `SchemaMigration` information we
need to make sure we store it per-connection rather than on
ActiveRecord::Base.
[Eileen M. Uchitelle & Aaron Patterson]
Diffstat (limited to 'activerecord/MIT-LICENSE')
0 files changed, 0 insertions, 0 deletions