Commit graph

3 commits

Author SHA1 Message Date
Tim Starling
d7cb31fd1d migrateBlocks.php: Fix infinite loop
Don't go into an infinite loop if the batch contains only rows that are
skipped due to ipb_user === 0.

Change-Id: I2b8398bcc78267e80313ecc6e64033805d83fdef
2024-03-13 11:04:12 +11:00
Tim Starling
2ff4491860 migrateBlocks.php: Skip existing IDs
When copying blocks from ipblocks to the new block table, skip rows for
which the relevant ID already exists in the block table. In write-both
mode, it is expected that some blocks will have already been copied.
This also allows the script to be run multiple times on a wiki, so that
it can be used to clean up the current situation in production.

Bug: T355034
Change-Id: I54e65adef685bfc7d4f63853cd50ca0f55e2ecdb
2024-03-11 12:25:11 +11:00
MusikAnimal
4e42654329 MigrateBlocks: maintenance script for migrating to multiblocks schema
The old ipblocks table is left touched.

The data is normalized to match the new schema, including resolving
any data integrity issues with ipb_parent_block_id (T282890).

Data is not validated as it is copied. Existing logic could be used from
DatabaseBlockStore, but it performs other non-idempotent actions, and
would probably slow down the script.

The default batch size is 500 instead of the typical 1000 because two
INSERTs are performed for each ipblock.

Bug: T350361
Bug: T282890
Change-Id: I526bb9b8febc5c1cb6a56b9a1044dedcf99c2224
2024-01-11 14:45:29 +11:00