It's highlighted in T257407: 1.34.X update fails when ipblocks table is shared and T257356: 1.33.X update to shared ipblocks table fails after first run that having multiple tables changed in one sql file doesn't work well if you're using shared tables
The problem is the patch does the queries for many different tables, but only guard checks the logging table
[ 'dropField', 'logging', 'log_user', 'patch-drop-user-fields.sql' ],
Inside dropField
protected function dropField( $table, $field, $patch, $fullpath = false ) { if ( !$this->doTable( $table ) ) { return true; }
It calls doTable
if ( in_array( $name, $wgSharedTables ) ) { $this->output( "...skipping update to shared table $name.\n" ); return false; } else { return true; }
doTables needs to be run for every individual table in a patch, so I suggest we stop doing this pattern of one sql file that makes changes to many different tables like this