List Info

Thread: Merging two Users into one user(-account)




Merging two Users into one user(-account)
user name
2006-12-29 21:56:22
Hello!

I want to merge two user-accounts on my wiki (currently
1.6.8, will be updated 
in februar to 1.9.x).

I searched in archives of this list, and found a description
by
Michael Richards from 10/2004. I dont now, which version he
describes, but afaik 
the DB-layout has changed. I have quoted the old description
from 2004 below.

Is there any extension to merge user-accounts?
Or could anyone give me the current (updated) SQL-Statements
to merge to 
user-accounts?

Best regards ... and a happy New Year,
Jan


-----------------------------
Citation from archiv:

Richards,Michael Michael.Richards at gartner.com
Mon Oct 4 20:11:15 UTC 2004

Chuck,
First, find the user_id for the account you wish to delete
e.g.
    select user_id from user where user_name =
'old_user_name';

Assuming they have no contributions, you can just delete the
user record. e.g.
    delete from user where user_name = 'old_user_name';

However, if the reason you are deleting is because you have
two user accounts 
for the same person, and the old user account has already
been used to make 
edits, and you want to merge the two accounts, you also need
to fix several 
other tables to point to the new username e.g. lets say the
old user_id is 66, 
and the new user_id is 99:
   update old           set old_user_text = 'old_user_name'
where old_user = 66;
   update cur           set cur_user_text = 'old_user_name'
where cur_user = 66;
   update recentchanges set rc_user_text  = 'old_user_name'
where rc_user  = 66;
   update archive       set ar_user_text  = 'old_user_name'
where ar_user  = 66;
   update image         set img_user_text = 'old_user_name'
where img_user = 66;
   update old           set old_user      = 99             
where old_user = 66;
   update cur           set cur_user      = 99             
where cur_user = 66;
   update recentchanges set rc_user       = 99             
where rc_user  = 66;
   update archive       set ar_user       = 99             
where ar_user  = 66;
   update image         set img_user      = 99             
where img_user = 66;

Note that the user_id and user_name fields are duplicated in
each of these five 
tables (for performance reasons).

There may be a script to do all this that I am unaware of.
If so can someone 
please mention it.

If you just want to change the user name, then just update
the user_name on the 
user table and the user_text on the other five tables.
Again, there may be a 
script for this.

Michael Richards
_______________________________________________
MediaWiki-l mailing list
MediaWiki-lWikimedia.org
http://mail.wikipedia.org/mailman/listinfo/mediawiki-l

Merging two Users into one user(-account)
user name
2006-12-29 23:51:10
On 29/12/06, Jan <2036gmx.de> wrote:
> Is there any extension to merge user-accounts?
> Or could anyone give me the current (updated)
SQL-Statements to merge to
> user-accounts?

To do all the base stuff:

UPDATE archive SET ar_user = $nid, ar_user_text = $nun WHERE
ar_user = $oid
UPDATE filearchive SET fa_user = $nid, fa_user_text = $nun
WHERE fa_user = $oid
UPDATE image SET img_user = $nid, img_user_text = $nun WHERE
img_user = $oid
UPDATE logging SET log_user = $nid WHERE log_user = $oid
UPDATE oldimage SET oi_user = $nid, oi_user_text = $nun
WHERE oi_user = $oid
UPDATE recentchanges SET rc_user = $nid, rc_user_text = $nun
WHERE
rc_user = $oid
UPDATE revision SET rev_user = $nid, rev_user_text = $nun
WHERE rev_user = $oid

To move watchlist items too:

UPDATE watchlist SET wl_user = $nid WHERE wl_user = $oid

To move groups:

UPDATE user_groups SET ug_user = $nid WHERE ug_user = $oid

All the above assume that $nid is the user_id of the
destination user,
$nun is the user_name of the destination user, and $oid is
the user_id
of the user account which will not be used.

This will not delete the accounts; you could theoretically
remove the
corresponding user table row, and have the old user and talk
pages
redirect to the new ones (avoid breaking signatures on
existing
pages), but that's at your own risk.

As ever, when messing about with the database in a major
fashion, make a backup.


Rob Church
_______________________________________________
MediaWiki-l mailing list
MediaWiki-lWikimedia.org
http://mail.wikipedia.org/mailman/listinfo/mediawiki-l

Merging two Users into one user(-account)
user name
2006-12-31 14:50:28
Thanks Rob 
To be sure: For which versions of MW (DB-layout) your
statements will work?
1.6.x to current 1.9svn ?

regards,
jan

Rob Church schrieb:
> On 29/12/06, Jan <2036gmx.de> wrote:
>> Is there any extension to merge user-accounts?
>> Or could anyone give me the current (updated)
SQL-Statements to merge to
>> user-accounts?
> 
> To do all the base stuff:
> 
> UPDATE archive SET ar_user = $nid, ar_user_text = $nun
WHERE ar_user = $oid
> UPDATE filearchive SET fa_user = $nid, fa_user_text =
$nun WHERE fa_user = $oid
> UPDATE image SET img_user = $nid, img_user_text = $nun
WHERE img_user = $oid
> UPDATE logging SET log_user = $nid WHERE log_user =
$oid
> UPDATE oldimage SET oi_user = $nid, oi_user_text = $nun
WHERE oi_user = $oid
> UPDATE recentchanges SET rc_user = $nid, rc_user_text =
$nun WHERE
> rc_user = $oid
> UPDATE revision SET rev_user = $nid, rev_user_text =
$nun WHERE rev_user = $oid
> 
> To move watchlist items too:
> 
> UPDATE watchlist SET wl_user = $nid WHERE wl_user =
$oid
> 
> To move groups:
> 
> UPDATE user_groups SET ug_user = $nid WHERE ug_user =
$oid
> 
> All the above assume that $nid is the user_id of the
destination user,
> $nun is the user_name of the destination user, and $oid
is the user_id
> of the user account which will not be used.
> 
> This will not delete the accounts; you could
theoretically remove the
> corresponding user table row, and have the old user and
talk pages
> redirect to the new ones (avoid breaking signatures on
existing
> pages), but that's at your own risk.
> 
> As ever, when messing about with the database in a
major fashion, make a backup.
> 
> 
> Rob Church
> _______________________________________________
> MediaWiki-l mailing list
> MediaWiki-lWikimedia.org
> http://mail.wikipedia.org/mailman/listinfo/mediawiki-l
> 
_______________________________________________
MediaWiki-l mailing list
MediaWiki-lWikimedia.org
http://mail.wikipedia.org/mailman/listinfo/mediawiki-l

Merging two Users into one user(-account)
user name
2006-12-31 17:23:53
On 31/12/06, Jan <2036gmx.de> wrote:
> Thanks Rob 
> To be sure: For which versions of MW (DB-layout) your
statements will work?
> 1.6.x to current 1.9svn ?

Should cover 1.7.0 through to (and including) 1.9alpha.
Check the
database and omit statements for tables which don't exist.


Rob Church
_______________________________________________
MediaWiki-l mailing list
MediaWiki-lWikimedia.org
http://mail.wikipedia.org/mailman/listinfo/mediawiki-l

[1-4]

about | contact  Other archives ( Real Estate discussion Medical topics )