| 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
|
_______________________________________________ MediaWiki-l mailing list -- [email protected] To unsubscribe send an email to [email protected] https://lists.wikimedia.org/postorius/lists/mediawiki-l.lists.wikimedia.org/
