- Apply schema change maintenance/archives/patch-block_target.sql to all beta wikis
- Apply schema change to all production wikis
- QA prepare blocks on beta
- Switch $wgBlockTargetMigrationStage on beta to SCHEMA_COMPAT_READ_OLD | SCHEMA_COMPAT_WRITE_BOTH
- QA check block actions are still functional
- Run migrateBlocks.php on beta
- Switch beta to SCHEMA_COMPAT_READ_NEW | SCHEMA_COMPAT_WRITE_BOTH
- Switch beta to SCHEMA_COMPAT_NEW
- QA final check on beta
- Deploy WMCS patch to hide private data
- Switch production to SCHEMA_COMPAT_READ_OLD | SCHEMA_COMPAT_WRITE_BOTH
- Run migrateBlocks.php on all production wikis
- Switch production to SCHEMA_COMPAT_READ_NEW | SCHEMA_COMPAT_WRITE_BOTH
- Deploy WMCS b/c view for ipblocks
- Switch production to SCHEMA_COMPAT_NEW
- Move away ipblocks tables
- Drop ipblocks tables
Rollback plans:
- It is possible to roll back from SCHEMA_COMPAT_WRITE_BOTH mode to SCHEMA_COMPAT_OLD mode, whether or not migrateBlocks.php has been run. If this is done, the new tables should be truncated before moving forward again.
- Minor, fully-isolated bugs specific to the SCHEMA_COMPAT_WRITE_BOTH mode can be dealt with by completing the migration. We are not going to use this code again.
- Rollback from SCHEMA_COMPAT_NEW to SCHEMA_COMPAT_READ_OLD can be done at the cost of losing blocks inserted since the SCHEMA_COMPAT_NEW mode was entered.