Problem/Motivation
- Tests are slow and installation takes a long time (both for d.org test runs and local development)
- Backdrop found out that installation is deterministic and can easily be cached per profile
Credit: https://github.com/backdrop/backdrop/pull/1366
Their patch works, but is preparing for a known set of profiles instead of demand.
Proposed resolution
- Introduce --cache option for BC compatibility
- Cache database tables and files after installation
- Re-use cache when it exists
- Prevent race conditions with transactions
- (optional) Convert tables to MyISAM to speed up DB copy and test runs
99% of people don't change the database data or schema during development, so the cache will work fine.
Remaining tasks
- Upload patch
- Check that tests pass
- Port to Drupal 8 as trait and implement in BrowserTestBase as well
- Get it committed to Drupal 7
User interface changes
- None, commandline only. UI change can be follow-up
API changes
- None