Hi Xavier,

Our upgrade process was:
 - Run createAndPromote with a temporary user 
 - Then run migrate-actors.bash (see attached file, run with userid of temporary user)
 - Then cleanupUsersWithNoId (with —force and —prefix *)
 - Then migrateActors (with —force)
 - Then update.php
#!/bin/bash

function usage() {
    echo "~~~~~~~~~~~"
    echo " U S A G E"
    echo "~~~~~~~~~~~"
    echo "Usage: migrate-actors.bash [option]"
    echo "  options:"
    echo "    -db   : Database"
    echo "    -dbp  : Database prefix"
    echo "    -s    : MySQL server"
    echo "    -u    : MySQL user"
    echo "    -p    : MySQL password"
    echo "    -i    : The userid of the migration user"
    echo ""
    exit 1
}

function missingparam() {
    echo "Missing required parameter '$1'"
    usage
}

while [ "$1" != "" ]; do
    case $1 in
        -h | --help )               usage
                                    exit
                                    ;;
        -db | --database )          shift
                                    database=$1
                                    ;;
        -dbp | --database-prefix )  shift
                                    prefix=$1
                                    ;;
        -s | --server )             shift
                                    host=$1
                                    ;;
        -u | --user )               shift
                                    user=$1
                                    ;;
        -p | --password )           shift
                                    password=$1
                                    ;;
        -i | --user-id )             shift
                                    userid=$1
                                    ;;
        * )                         usage
                                    exit 1
    esac
    shift
done

# Parameter checks
if [[ -z $database ]];
then    
    missingparam "database"
fi

if [[ -z $user ]];
then    
    missingparam "user"
fi

if [[ -z $password ]];
then    
    missingparam "password"
fi

if [[ -z $userid ]];
then    
    missingparam "userid"
fi

# Check if the userid is actually a numeric value:
reg='^[0-9]+$'
if ! [[ $userid =~ $reg ]] ; then
   echo "Error: Did not retrieve a valid userid: $userid" >&2; exit 1
fi

# Execute SQL queries:
if [[ -z $prefix ]];
then    
    mysql --host="$host" --user="$user" --password="$password" 
--database="$database" --execute="INSERT INTO revision_actor_temp 
(revactor_rev, revactor_actor, revactor_timestamp, revactor_page) SELECT 
rev_id, $userid as actor, rev_timestamp, rev_page FROM revision WHERE rev_id 
NOT IN (SELECT revactor_rev FROM revision_actor_temp);"
    exit 0
else
    mysql --host="$host" --user="$user" --password="$password" 
--database="$database" --execute="INSERT INTO ${prefix}revision_actor_temp 
(revactor_rev, revactor_actor, revactor_timestamp, revactor_page) SELECT 
rev_id, $userid as actor, rev_timestamp, rev_page FROM ${prefix}revision WHERE 
rev_id NOT IN (SELECT revactor_rev FROM ${prefix}revision_actor_temp);"
fi

-- 
Youri van den Bogert
T: + 31 6 38 76 69 23
E: yvdbog...@archixl.nl

Afwezig op maandag

On 10 Aug 2022, at 10:36, Xavier Humbert via MediaWiki-l <mediawiki-l@lists.wikimedia.org> wrote:

Unfortunately I've been hit by the infamous

"User name "XXX" is usable, cannot create an anonymous actor for it. Run maintenance/cleanupUsersWithNoId.php to fix this situation"

Unfortunately, cleanupUsersWithNoId.php runs, report no error, and does not correct the problem. It is an already reported behavior

And now, I know that the table prefix_actor is **crucial**, since without valid actor, the page is lost forever

Xavier

Le 8/10/22 10:11, Xavier Humbert via MediaWiki-l a écrit :
Hi Youri,

Non, I didn't, I'll give a try

Thanks,

Xavier

Le 8/10/22 10:10, Youri van den Bogert a écrit :
Hi Xavier,

Did you run migrateActors before upgrading?

We had similar issues; and the reason was that the user created the page was deleted. MigrateActors fixed the problem for us.

Greets,

Youri.

On 10 Aug 2022, at 10:02, Xavier Humbert via MediaWiki-l <mediawiki-l@lists.wikimedia.org> wrote:

Hi,

I've been asked to upgrade a very, very old wiki : it was version 1.25.6. I decided to do it step by step, ie release by release.
I carefully backup-ed the database between each iteration, and ran maintenance/update.php

Everything went fine until 1.34.4, when the vast majority of links were broken (Page does not exist yet)

There were some stopper between 1.33 and 1.34 ? I read the release notes, update.php is intended to do the right job

Thanks for help,

Cheers,

Xavier

--
Xavier Humbert
CRT Supervision et Exploitation de Niveau 1
Rectorat de Nancy-Metz
03 83 86 27 39
_______________________________________________
MediaWiki-l mailing list -- mediawiki-l@lists.wikimedia.org
To unsubscribe send an email to mediawiki-l-le...@lists.wikimedia.org
https://lists.wikimedia.org/postorius/lists/mediawiki-l.lists.wikimedia.org/

--
Xavier Humbert
CRT Supervision et Exploitation de Niveau 1
Rectorat de Nancy-Metz
03 83 86 27 39
_______________________________________________
MediaWiki-l mailing list -- mediawiki-l@lists.wikimedia.org
To unsubscribe send an email to mediawiki-l-le...@lists.wikimedia.org
https://lists.wikimedia.org/postorius/lists/mediawiki-l.lists.wikimedia.org/

_______________________________________________
MediaWiki-l mailing list -- mediawiki-l@lists.wikimedia.org
To unsubscribe send an email to mediawiki-l-le...@lists.wikimedia.org
https://lists.wikimedia.org/postorius/lists/mediawiki-l.lists.wikimedia.org/

Reply via email to