Delegate to anonymous subclass of AR::SchemaMigration #221
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I've found that adding the
data_migrate
gem will cause a database connection to be forced when runningrails assets:precompile
and was able to pin down the problem to the subclassing ofActiveRecord::SchemaMigration
to createDataMigrate::DataSchemaMigration
Of course, there are workarounds like adding a
nulldb
adapter to makeassets:precompile
work in this situation, but I feel like a dependency should not force us to do this if at all possible.Using composition in favour of inheritance and delegating to the instance does seem to fix the problem here, though there might be other ways to achieve this (e.g. deferred requiring of
data_migrate/data_schema_migration
)This example app showcases the issue.